[C++]: leggere da file.

V.C5
Il concetto sembra chiaro: apri il file, ci scrivi dentro qualcosa oppure, se non è vuoto, ci scrivi tu qualcosa dentro semplicemente usando fprintf e fscanf. Eppure ho fatto questo minuscolo programma di prova e non mi viene. In pratica ho creato un file chiamato "prova" dentro il quale ho scritto "5". Poi eseguo questo programma:

#include
#include
int main (void){
FILE *fp;
fp=fopen("prova.txt","r");
int dim;
fscanf(fp, "%d",&dim);
printf ("\n\ndim=%d\n\n",dim);
fclose(fp);
system ("PAUSE");
return 0;}

per leggere tale valore e salvarlo in "dim", ma ovviamente poi dim mi viene una cosa assurda che non ha niente a che fare con il mio 5. Dove sto sbagliando?? Grazie in anticipo

Risposte
BoG3
Ma... è C o C++ ?

Prova ad usare questo esempio come "esempio giuda" ;)

/*
  Lettura di un file riga per riga.
*/

#include<stdlib.h>
#include<stdio.h>

int main() {
  FILE *fd;
  char buf[200];
  char *res;


		/* apre il file */
  fd=fopen("righe.txt", "r");
  if( fd==NULL ) {
    perror("Errore in apertura del file");
    exit(1);
  }


		/* legge e stampa ogni riga */
  while(1) {
    res=fgets(buf, 200, fd);
    if( res==NULL )
      break;
    printf("%s", buf);
  }


		/* chiude il file */
  fclose(fd);

  return 0;
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.