Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
ho, stavolta, un problema che non riesco a risolvere, una mia applicazione ha bisogno di leggere una stringa da un file di testo, contenente spazi. prima usavo le funzioni del C come fopen() e fgets(), ma adesso ho deciso di passare a funzioni piu` efficenti come le funzioni di fstream. quando arrivo pero` ad utilizzare getline in questo modo:
si... avevo gia` provato, ho diversi manuali di c++, uno trall'altro recentissimo uscito ad aprile, tutti pero` usano getline nel modo in cui l'ho descritto prima. non riesco a capire perche` non funzioni... in oltre non posso usare il tipo string perche` devo passare la variabile char alla funzione FindWindow() per trovare l'handle della finestra dato il titolo, e necessita di un parametro char. domani posto tutto il codice, cosi` vediamo se sono io che sbaglio qualcosa...
ok, la mia necessita` e questa:
utilizzare le funzioni di fstream per leggere una stringa (anche del tipo string, convertendola poi in char con c_str() ) da un file, ma con lo stream cin da file registro soltanto la stringa fino al carattere di spaziatura, ma ho bisogno di leggere il nome di una finestra, quindi... con fopen ero piu` semplice utilizzavo fgets ed era ok, ma cosi` non so proprio come rigirarmi e su google dopo due giorni di ricerca non ho trovato niente, tanto meno su tutti e 7 i libri di c++ che ho in casa...
il codice che uso attualmente e` questo:
Codice sorgente - presumibilmente C#
void FinestraCheck()
{
char Window[100];
fstream in;
in.open("finestra.txt", ios::in);
if(!in)
{
cerr <<"\n\nerrore!!"<< endl;
system("pause");
}
in>> Window;// legge soltato fino al carattere di spaziatura
/* ho bisogno che legga un'intera stringa di parole */
/* questa e` una prova per vedere se la stringa ha letto dal file */
cout << endl << endl << Window << endl;
system("pause");
/* questa e` una prova per vedere se la stringa ha letto dal file */
HwndWindow=FindWindow(NULL, Window);// trova handle finestra
if(HwndWindow ==NULL)
{
MessageBox(NULL, " \n Finestra non trovata.", "Crybot ",MB_ICONERROR | MB_TOPMOST);
ho risolto utilizzando getline, prima mi dava errore, ma adesso non so perche` funziona nuovamente... in ogni caso la tua soluzione non puo` funzionare, io devo leggere diverse linee di testo ognuna contenente spazi, tu riesci a leggere tutto parola per parola ma non puoi sapere quando finisce una linea di testo...
grazie mq