Pourquoi le code ci-dessous ne fonctionne pas? Je veux dire, il montre toutes sortes de caractères étranges sur la sortie de la console.Pourquoi ai-je besoin de vider mon flux d'E/S pour obtenir le résultat correct?
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Cependant, le code ci-dessous fonctionne bien.
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fflush (pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Pourquoi ai-je besoin de vider le flux pour obtenir le résultat correct?
Thx beaucoup !!!!!! – Jaebum
Mais pourquoi la sortie de la deuxième source n'est pas "test"? – Jaebum
@Lee: Simple, vous l'avez lu du point où vous avez cessé d'écrire, vous devez revenir au début pour que cela fonctionne – falstro