Salve a tutti. Ho un problema. Quando entro nella procedura Write(), il primo gets() del ciclo viene ignorato... come è possibile?
codice:
#include <stdio.h>
#include <stdlib.h>
void Write ()
{
FILE *f;
f =fopen ("numbers.txt", "w");
char n[16];
while (1)
{
printf ("insert a number ('e' for exit): ");
gets (n);
if (!strcmp (n, "e"))
break;
fprintf (f, "%s\n", n);
}
fclose(f);
printf ("----------\n\n");
}
void Read()
{
FILE *f;
f =fopen ("numbers.txt", "r");
int x;
fscanf (f, "%d", &x);
while (!feof (f))
{
printf ("%d * 2 = %d\n", x, x * 2);
fscanf (f, "%d", &x);
}
fclose (f);
printf ("----------\n\n");
}
int main ()
{
int option;
while (1)
{
printf ("1. Write on file\n");
printf ("2. Read from file\n");
printf ("3. Exit\n---> ");
scanf ("%d", &option);
if (option == 1)
Write ();
else if (option == 2)
Read ();
else if (option == 3)
break;
}
return 0;
}