[C] Saisie clavier

S-N, je comprend pas? ma fonction change la valeur de mes 2 pointeur et apres je test les valeures a coup de conditions dans mon while, ca suffit paS ?
MErci Karlkox.

Karl> le mieux c’est de réécrire carrément le fichier, ie: je crée fichier tmp, puis j’écrit ma ligne, puis je recopie le contenu du second fichier dedans.

Le_syndicat> essaye de taper )@@@ au lieu de 012. Fait toi mal :slight_smile:

bah ca marche nikel ^^

[cpp]
[vince@localhost v1.1]$ ./othello_testing

    a   b   c   d   e   f
  +---+---+---+---+---+---+
1 | - | - | - | - | - | - |
  +---+---+---+---+---+---+
2 | - | - | - | - | - | - |
  +---+---+---+---+---+---+
3 | - | - | o | x | - | - |
  +---+---+---+---+---+---+
4 | - | - | x | o | - | - |
  +---+---+---+---+---+---+
5 | - | - | - | - | - | - |
  +---+---+---+---+---+---+
6 | - | - | - | - | - | - |
  +---+---+---+---+---+---+

Veuillez entrez un coup X (format: a 1,…,h 8)
puis appuyer sur Entrée
)@@@@
Veuillez entrez un coup X (format: a 1,…,h 8)
puis appuyer sur Entrée
)]]
Veuillez entrez un coup X (format: a 1,…,h 8)
puis appuyer sur Entrée

[/cpp]

Hé.

CHange ton path

export PATH=$PATH:.

franchement :o

PatH? pkoi ? a koi ca sert?

Sinon j’arrive vraiment a rien pour la lecture ecriture de donée…
Jai fait ca:

[cpp]
int sauvegardeEntete(FILE * file)
{

char c;

int i=0, TAILLE=242, cpt;
char cars[TAILLE];

//printf("\nFichier-->");

do
{      
       cars[i]=fgetc(file);
       //printf("%c",cars[i]);
       i++; 
}
while (cars[i]!=EOF);

   fprintf(file,"%i\n",DIMENSION_MAX);
     
for(cpt=0;cpt<TAILLE;cpt++)
   fprintf(file,"%c",cars[cpt]);

//printf("<--\n",i);
return -1;

}
[/cpp]

ca lit bien les char mais la il me dit erreur de segmentation.
Jveux juste inserer “DIMENSION_MAX\n” dans le fichier en entete et par la meme savoir si vous avez pas un bon tuto pour les E/S en C avec stdio en fr ???
Je galere sur google …

Pas étonnant celle là. char ce sont généralement des petits entiers nont signés, alors quand t’essaye de stocker EOF (qui vaut -1) dedans, tu as du mal :o c’est tout à faire normal !

bé pas de changemnts :frowning:
help
[cpp]
int sauvegardeEntete(FILE * file)
{

char c;

int i=0, TAILLE=242, cpt;
int cars[TAILLE];

//printf("\nFichier-->");

do
{      
       cars[i]=fgetc(file);
       //printf("%c",cars[i]);
       i++; 
}
while (cars[i]!=EOF);

   fprintf(file,"%i\n",DIMENSION_MAX);
     
for(cpt=0;cpt<TAILLE;cpt++)
   fprintf(file,"%i",cars[cpt]);

//printf("<--\n",i);
return -1;

}
[/cpp]

Déjà c’est %d, pas %i. Ensuite, dans ton truc pose toi la question de ce qu’il se passe si ton fichier dépasse les 242 caractères? Là tu pigeras ton seg fault.

Bah a othello y’a que 60 coups maximum,
un coup est representer par 4 characteres (“a 4\n”,“z 0\n”)
60*4 + 2 (DIMENSION_MAX+"\n")
soit 242

APres si ta une solution je suis preneur.

%i <=> %d
je prefere utilisé %i parce que i de int, %c pour les char, %f pour les float, etc …

%d = décimal

C’est standard.

Sinon t’as pas compris ma remarque…

Il se passe quoi si tu dépasse de ton tableau cars ?

bah j’ai remis %d et si on depasse ca fer des comportements imprevisibles, c interdit de toute facon.

et tu viens de dire quoi précédemment ?

(“ca lit bien les char mais la il me dit erreur de segmentation.”)