PDA

Visualizza la versione completa : [C++]Lettura di un file di testo


centro
26-02-2005, 20:21
Ciao a tutti,
spero qualcuno possa aiutarmi... cerco di compilare questo codice...



#include <iostream>
#include <fstream>


using namespace std;


main()
{
string nome;
string filetxt;
cout << "inserisci il nome del file di testo da leggere:"<<endl;
cin >> filetxt;
ifstream inFile; // dichiarazione file sola lettura
inFile.open(filetxt); // associa la var
inFile >>nome;
cout <<"Nel file di testo cè scritto: "<<nome; //scrive sullo schermo i valri letti
inFile.close(); // chiusura del file
}





ma continua a darmi imperterrito questo errore..

8ese.cpp: In function `int main()':
8ese.cpp:15: error: no matching function for call to `std::basic_ifstream<char,
std::char_traits<char> >::open(std::string&)'
/usr/include/c++/3.3.3/fstream:565: error: candidates are: void
std::basic_ifstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode)
[with _CharT = char, _Traits = std::char_traits<char>]
8ese.cpp:36:3: warning: no newline at end of file



il problema non c'è se alla riga

inFile.open(filetxt);

la sostituisco con

inFile.open("dati.txt");



Naturalmente sono all'inizio eventuali madornali errori... :D perdonatemi... :dhò:
Buon week, (......per quelli di fuori Roma, perchè a quì diluvia :oVVoVe: )

anx721
26-02-2005, 21:50
il prototipo della funzione open è:

void open ( const char * filename, openmode mode = in );

ovvero il nome del file deve essere passato come un char * e non come string. Se hai una string , puoi ottenere il relativo char* con il metodo c_str():

inFile.open(filetxt.c_str());

per la reference del c++:

http://www.cplusplus.com/ref/
http://www.cppreference.com/

gandalf45
27-02-2005, 00:10
Ricordati anche di aggiungere
#include <string>

:ciauz:

centro
01-03-2005, 19:17
scusate , ma non è mia abitudine no ringranziare...
ma avevo dei problemi con l'adsl.

vi ringrazio quindi... perchè in effetti con
inFile.open(filetxt.c_str());
va alla grande...
buona serata

Loading