C++ Leggere da un file
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> // Scrivi un programma che legge e visualizza un numero da un file int main() { int x; FILE *h; h = fopen ("h", "r"); fscanf (h, "%d", &x); //x è una variabile quindi ci vuole & pke x solo nei vettori/stringhe è anche puntatore (alla prima cella) printf ("%d\n", x); system ("PAUSE"); return 0; }
Nella cartella in cui c'è questo codice, è presente anche un blocco note con un numero per ogni rigo, scritto andando a capo senza spazi.
Questo file si chiama "h".
Purtroppo l'eseguibile mi legge e stampa sempre 0, qualsiasi numero io scriva nel file.
Il file non ha problemi, perché ho scritto un programma che scrive numeri su questo file e funziona bene.
C'è qualche problema nel codice o nel compilatore… qualcuno saprebbe aiutarmi? Grazie in anticipo.
Risposte
Ciao, premesso che quel codice di C++ ha ben poco, il file è fatto in questo modo giusto?
Puoi provare ad eseguire questo codice anziché il tuo e mettere qui l'eventuale output? Ho semplicemente messo un controllo per verificare che il file venga aperto ed un ciclo while per leggere tutto il file.
2371 21 4 1234 124
Puoi provare ad eseguire questo codice anziché il tuo e mettere qui l'eventuale output? Ho semplicemente messo un controllo per verificare che il file venga aperto ed un ciclo while per leggere tutto il file.
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *f; int x = -1; f = fopen("h","r"); if(f == NULL) { perror("Error while opening the file "); exit(EXIT_FAILURE); } while(fscanf(f, "%d", &x) != EOF) { printf("%d\n", x); } fclose(f); return EXIT_SUCCESS; }
Questo è l'output quando compilo il tuo codice:

Questo era "h":

Sembra che il programma "non veda" il file h.

Questo era "h":

Sembra che il programma "non veda" il file h.
Beh o metti il file nella stessa directory dell'eseguibile o passi il path assoluto del file alla fopen