Originariamente inviato da oregon
Perché è necessario un vettore di char per il nome e la modalità, quindi

indata.open(nomefile.c_str(), ifstream::in);

Vedi

http://www.cplusplus.com/reference/i...ifstream/open/
In C++11 puoi utilizzare direttamente utilizzare le std::string, senza fare una conversione in char*:

codice:
indata.open(nomefile, ifstream::in);
L'opzione da passare al compilatore per attivare il C++11 é

codice:
-std=c++0x