je la fonction suivante:fgets lit trop de caractères que existe
void writeResults(FILE* fp, FILE* fpw, Vector w, int size) {
Vector x;
while (1) {
char line[MAX_DIMENSION]; //max dimension is 200
if((fgets(line,MAX_DIMENSION,fp)) == NULL) { //EOF
return;
}
else {
int i=0;
while (line[i]!='\0') {
printf("% d %c\n",i,line[i]); //print to check it
i++;
}
}
}
}
La ligne du fichier il lit est:
1,1
2,2
Cependant lorsque j'imprime chaque ombles jusqu'à ce que « \ 0 » Je reçois cette sortie:
0 1
1 ,
2 1
3
4
0 2
1 ,
2 2
3
4
Quelqu'un at-il une idée de la raison pour laquelle il lit les 3 et 4 caractères supplémentaires? (il n'y a pas d'espaces supplémentaires dans le fichier).
Note: le fichier a été ouvert de la manière suivante:
FILE* fp = fopen(fileIn, "r");
if (fp == NULL) {
perror("Couldn't open File");
exit(errno);
}
N'oubliez pas de sélectionner la réponse qui vous a le plus aidé - mettez en surbrillance la coche blanche (coche) sur le LHS. Et faites cela pour toutes les questions où vous avez une réponse utile. Cela fait partie d'être un bon citoyen sur SO. –