Salve, sto scrivendo un piccolo programmino in C per esercitarmi, ma ho qualche problema....Devo leggere da file e per questo ho implementato una funzione, ma non riesco a capire perché quando passo la funzione al main mi stampa solo l'ultimo valore...qualcuno potremme darmi una mano? o dirmi se quello che ho scritto è sbagliato? Grazie
Code:
#include<stdlib.h>
#include<stdio.h>
char* function_file() {
//int main() {
FILE *fp;
char filename[60];
char *res;
char *buf=(char*) malloc(10*sizeof(char));
/* apre il file */
printf("Inserire il nome del file\n");
gets(filename); // inserisco il nome del file
fp = fopen(filename, "r"); // apro in modalità lettura
if( fp==NULL ) {
perror("Errore in apertura del file");
exit(1);
}
/* legge e stampa ogni riga */
while(!feof(fp)) { // finché non sono a fine file, leggo
res=fgets(buf,sizeof(buf), fp);
if( res==NULL )
break;
}
/* chiude il file */
fclose(fp);
return buf;
}
int main() {
char *buf = function_file();
printf("%s", buf);
free(buf);
return 0;
}