Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - scrivere e salvare file
Forum - C/C++ - scrivere e salvare file

Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 16:19
Giovedì, 17/02/2011
ho scritto un programma in cui scrivo e creo un file,lo stampo  a video e poi lo salvo.però c'è un problema:se lo scrivo e lo stampo solamente quando apro il file mi compare quello che ho scritto,se invece lo salvo anche, il file quando lo apro è vuoto,da che dipende?ecco il codice:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include<fstream>
  3. using namespace std;
  4. void stampa_video()//stampo a video il file ciao
  5. {char c;
  6. fstream vale;
  7. vale.open("ciao",ios::in);
  8. while(vale.get(c))
  9. cout<<c;
  10. vale.close();}
  11.  
  12. void scrivi()//scrivo nel file ciao
  13. {
  14. ofstream vale ("ciao");
  15. if (!vale){
  16. cerr<<"No file";
  17. }
  18. char c;
  19. while(cin.get(c)){
  20. vale.put(c);
  21. if (c == 'x') break;}
  22. vale.close();}
  23. void salva_file()//salvo il file ciao
  24.     {
  25.    fstream vale;
  26.    char c;
  27.    vale.open("ciao",ios::out);
  28.    if(vale.good()){  
  29.          while (vale.get(c)){
  30.              vale<<c;
  31.          }
  32.   }
  33.    
  34.    vale.close();
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40. cout<<"scrivi nel file: "<<endl;
  41. scrivi();
  42. cout<<endl;
  43. stampa_video();
  44. cout<<endl;
  45. salva_file();
  46. system("pause");
  47. return 0;
  48. }


Ultima modifica effettuata da ciao888 il 17/02/2011 alle 16:37
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 16:31
Giovedì, 17/02/2011

mostra il codice, così su due piedi non si può fare nulla.

ho modificato la domanda e scritto il codice - ciao888 - 17/02/11 16:38
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 10:29
Sabato, 19/02/2011
guarda che devi specificare il tipo di file che apri sia in input che in output e inoltre non serve una funzione per il salvataggio in quanto semplicemente cosi:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include<fstream>
  3. using namespace std;
  4. void stampa_video()//stampo a video il file ciao
  5. {char c;
  6. fstream vale;
  7. vale.open("ciao.txt",ios::in);
  8. while(vale.get(c))
  9. cout<<c;
  10. vale.close();}
  11.  
  12. void scrivi()//scrivo nel file ciao
  13. {
  14. ofstream vale ("ciao.txt");
  15. if (!vale){
  16. cerr<<"No file";
  17. }
  18. char c;
  19. while(cin.get(c)){
  20. vale.put(c);
  21. if (c == 'x') break;}
  22. vale.close();}
  23.  
  24.  
  25. int main()
  26. {
  27. cout<<"scrivi nel file: "<<endl;
  28. scrivi();
  29. cout<<endl;
  30. stampa_video();
  31. cout<<endl;
  32. system("pause");
  33. return 0;
  34. }



una volta eseguita l'applicazione trovi nel file salvato tutto ciò che hai scritto.
compresa la x naturalmente!

PM