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; }

Rispondi quotando