Vi chiedo per l'ennesima volta un aiuto nel mio travagliato apprendimento del c++
Vi spiego il mio problema. Ho questa funzione:
Codice:
char leggiFile(char chrFile[1024]) {
FILE* fFile;
char chrLine[81];
fFile = fopen(chrFile, "rt");
if(fFile == NULL)
{
cout << "Impossibile aprire " << chrFile << endl;
exit(0);
}
fgets(chrLine, 81, fFile);
cout << chrLine << endl;
fclose(fFile);
return chrLine[81];
}
Devo recuperare il valore restituito della funzione. Ecco il codice:
Codice:
char riga[81];
riga=leggiFile("nomefile.txt");
cout << riga << endl;
Ho provato qualsiasi cosa, mettendo anche gli asterischi dopo i vari char (quelli giusti ), però ho sempre ricevuto degli errori. Quando ho provato ad usare il tipo char*, in fase di compilazione non mi dava errore ma ricevevo invece un errore in fase di esecuzione.
Cosa c'è di male nel mio codice?
Per maggiore chiarezza, vi posto anche l'intero codice con il tipo char* (quello ke mi da l'errore in fase di esecuzione). Eccolo:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;
char* leggiFile(char chrFile[1024]) {
FILE* fFile;
char* chrLine;
fFile = fopen(chrFile, "rt");
if(fFile == NULL)
{
cout << "Impossibile aprire " << chrFile << endl;
exit(0);
}
while(fgets(chrLine, 81, fFile) != NULL)
{
cout << chrLine << endl;
}
fgets(chrLine, 81, fFile);
cout << chrLine << endl;
fgets(chrLine, 81, fFile);
cout << chrLine << endl;
fclose(fFile);
return chrLine;
}
int main()
{
char* riga;
riga=leggiFile("nomefile.txt");
cout << *riga << endl;
cin.get();
}
Qualche idea?