Io in primo luogo correggerei l'indentazione... così com'è quel tuo codice è illeggibile.
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;
}