¿Por qué el código siguiente no funciona? Quiero decir, muestra todo tipo de personajes extraños en la salida de la consola.¿Por qué necesito enjuagar mi flujo de E/S para obtener el resultado correcto?
#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;
}
}
Sin embargo, el siguiente código funciona 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;
}
}
¿Por qué necesito enjuagar la corriente para obtener el resultado correcto?
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Mucho !!!!!! – Jaebum
¿Pero por qué la salida de la segunda fuente no es "prueba"? Simplemente no muestra nada .. – Jaebum
@Lee: Simple, lo leyó desde el punto en que dejó de escribir, necesita volver al principio para que funcione. – falstro