c++ Leggere da un file

Messaggioda SalvatCpo » 05/09/2018, 12:11

Codice:
#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.
SalvatCpo
Average Member
Average Member
 
Messaggio: 164 di 726
Iscritto il: 30/12/2017, 17:55

Re: c++ Leggere da un file

Messaggioda Obidream » 05/09/2018, 21:12

Ciao, premesso che quel codice di C++ ha ben poco, il file è fatto in questo modo giusto?

Codice:
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.

Codice:
#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;
}
Ultima modifica di Obidream il 06/09/2018, 00:36, modificato 1 volta in totale.
((v & 0xff) && (v & 0xff00) && (v & 0xff0000) && (v & 0xff000000))
Avatar utente
Obidream
Advanced Member
Advanced Member
 
Messaggio: 912 di 2194
Iscritto il: 07/02/2012, 20:57

Re: c++ Leggere da un file

Messaggioda SalvatCpo » 05/09/2018, 22:24

Questo è l'output quando compilo il tuo codice:
Immagine

Questo era "h":
Immagine

Sembra che il programma "non veda" il file h.
SalvatCpo
Average Member
Average Member
 
Messaggio: 165 di 726
Iscritto il: 30/12/2017, 17:55

Re: c++ Leggere da un file

Messaggioda Obidream » 05/09/2018, 23:06

Beh o metti il file nella stessa directory dell'eseguibile o passi il path assoluto del file alla fopen
((v & 0xff) && (v & 0xff00) && (v & 0xff0000) && (v & 0xff000000))
Avatar utente
Obidream
Advanced Member
Advanced Member
 
Messaggio: 913 di 2194
Iscritto il: 07/02/2012, 20:57


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite