A rigor di logica non salvi niente visto che leggi un carattere e lo rimetti dentro.
Ho modificato un pò il codice in modo che siano chiari i passaggi.
codice:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//stampo a video il file ciao
void stampa_video() {
fstream vale("ciao",ios::in);
string line;
while (getline(vale,line))
cout << line << endl;
vale.close();
}
// scrivo nel file ciao distruggendo ogni volta il contenuto.
void scrivi_qualcosa () {
ofstream vale ("ciao", ios::out );
if (!vale) { cerr<<"No file"; return; }
string line;
getline(cin,line);
vale << line;
vale.close();
}
// scrivo nel file ciao aggiungendo ogni volta il contenuto.
void scrivi_qualcosa_altro() {
fstream vale("ciao",ios::out | ios::app) ;
string line;
getline(cin,line);
vale<<line;
vale.close();
}
int main() {
cout<<"scrivi nel file: "<<endl;
scrivi_qualcosa();
cout<<endl;
stampa_video();
cout<<endl;
scrivi_qualcosa_altro();
stampa_video();
cin.get();
return 0;
}