Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - leggere testo da file (fstream)
Forum - C/C++ - leggere testo da file (fstream)

Avatar
Hunterwolf (Normal User)
Newbie


Messaggi: 4
Iscritto: 03/01/2007

Segnala al moderatore
Postato alle 17:53
Mercoledì, 03/01/2007
ciao a tutti! mi sono appena iscritto a questo forum! complimenti x il sito e il forum è davvero carino lo seguivo già da tempo!

arrivo al problema...

per provare ofstream e iostream avevo creato questo semplice programma

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. char a[] = "TESTO";
  8. ofstream creafile("file.txt");
  9. creafile << a;
  10.  
  11. char b[] = "...";
  12. ifstream aprifile ("file.txt");
  13. aprifile >> b;
  14. cout << aprifile << endl;
  15. cout << b << " !" << endl;
  16.  
  17.  
  18.   return 0;
  19. }



io supponevo ke l'output dovesse essere

Codice sorgente - presumibilmente Plain Text

  1. TESTO
  2. TESTO !



e invece mi ritrovo

Codice sorgente - presumibilmente Plain Text

  1. 0
  2. ... !



come se il programma non leggesse dal file di testo! se vado a controllare il file è però stato creato e contiene la scritta "TESTO" cosa sto sbagliando??? grazie in anticipo!!!

PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 21:02
Mercoledì, 03/01/2007
nel primo cout stampi solo l'oggetto,quindi essendo allocato 0

nel secondo, invece, non funziona perche' non hai chiuso il creafile con creafile.close(). Senza questa funzione il programma non salva nulla sul disco e quindi b riamne intatto...

Ecco il sorgemte corretto:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. char a[] = "TESTO";
  8. ofstream creafile("file.txt");
  9. creafile << a;
  10. creafile.close();
  11.  
  12. char b[] = "...";
  13. ifstream aprifile ("file.txt");
  14. aprifile >> b;
  15. cout << b << " !" << endl;
  16.  
  17.  
  18. return 0;
  19. }



ciao alla prossima!!


c'e' qualcosa in questa pizza che non mi quadra...
E' logico, e' tonda..E' facile se ci pensi..
PM Quote
Avatar
Hunterwolf (Normal User)
Newbie


Messaggi: 4
Iscritto: 03/01/2007

Segnala al moderatore
Postato alle 22:14
Mercoledì, 03/01/2007
grazie mille davvero!:k: alla prossima!

PM Quote
Avatar
donatocastelluccio (Normal User)
Newbie


Messaggi: 4
Iscritto: 06/02/2008

Segnala al moderatore
Postato alle 19:17
Mercoledì, 06/02/2008
Ciao a tutti sono nuovo nel forum e anke del c++.
Ho fatto un programma che dovrebbe leggere da un file  txt chiamato "donna" i primi 10 caratteri inseriti in tale file e restituire in uscita questi 10 caratteri scritti appunto nel file "donna".

Il file di teso txt l'ho fatto io e ci ho scritto fiori e l'ho salvato sul desktop.

Quando compilo il programma da 0 warnings e 0 errori solo che alla fine nn mi scrive in uscita quello che ci è scritto nel file donna, ma dei simboli strani.
Forse nn legge il file? In quale directory devo salvarlo?

Io uso il DEV-C++
Vi scrivo qui il codice del file.....vi prego aiutatemi è abbastanza urgente!!!!!

#include <iostream>
#include <fstream>
using namespace std;

int main()

try
{
   char testo[100];
   int i;
   ifstream a("donna"); //in questo rigo abbiamo  
                       //dichiarato la variabile
                       //a di tipo ifstream e                                                      
              //abbiamo aperto il file
                      //donna            
                      
   for ( i=0; i<10; ++i ){                                 a.open( "donna.txt" );
       a >> testo;  
       cout << testo;
   }
     a.close();
    
     system("PAUSE");
}

catch (char testo[100]) {cout<<"problemi con i file"<<testo<<endl;}

Ultima modifica effettuata da donatocastelluccio il 06/02/2008 alle 19:18
PM Quote