Oppure

Loading
17/02/11 15:19
ciao888
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:
#include <iostream>
#include<fstream>
using namespace std;
void stampa_video()//stampo a video il file ciao
{char c;
fstream vale;
vale.open("ciao",ios::in);
while(vale.get(c))
cout<<c;
vale.close();}

void scrivi()//scrivo nel file ciao
{
ofstream vale ("ciao");
if (!vale){
cerr<<"No file";
}
char c;
while(cin.get(c)){
vale.put(c);
if (c == 'x') break;}
vale.close();}
void salva_file()//salvo il file ciao
    {
   fstream vale;
   char c;
   vale.open("ciao",ios::out);
   if(vale.good()){   
         while (vale.get(c)){
             vale<<c;
         }
  } 
   
   vale.close();
}


int main()
{
cout<<"scrivi nel file: "<<endl;
scrivi();
cout<<endl;
stampa_video();
cout<<endl;
salva_file();
system("pause");
return 0;
}
Ultima modifica effettuata da ciao888 17/02/11 15:37
aaa
17/02/11 15:31
HeDo

mostra il codice, così su due piedi non si può fare nulla.
aaa
19/02/11 9:29
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:
#include <iostream>
#include<fstream>
using namespace std;
void stampa_video()//stampo a video il file ciao
{char c;
fstream vale;
vale.open("ciao.txt",ios::in);
while(vale.get(c))
cout<<c;
vale.close();}
 
void scrivi()//scrivo nel file ciao
{
ofstream vale ("ciao.txt");
if (!vale){
cerr<<"No file";
}
char c;
while(cin.get(c)){
vale.put(c);
if (c == 'x') break;}
vale.close();}
 
 
int main()
{
cout<<"scrivi nel file: "<<endl;
scrivi();
cout<<endl;
stampa_video();
cout<<endl;
system("pause");
return 0;
}


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