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