Lettura File in C++

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

//Lettura file carattere per carattere
void FileCarattere()
{
char s;
ifstream f("file.txt");

while(f.get(s))//bisogna metterlo qua dentro se no fa due volte l'ultima riga
{
			
		
if(s=='\0') cout<<endl;


cout<<' ';
cout<<s;
		
}
	
f.close();
}

/*lettura file carattere per carattere senza spazi */
void FileCin()
{
    
    
        cout<<endl;
        char s;
	ifstream f;
	f.open("file.txt",ifstream::in);

	while(f>>s) // legge un carattere da f 
	{
        
	if((s)=='\0') cout<<endl;  // non va a capo perche non lo vede 
                      
		                      //come il cin non vede gli spazi  e quindi neanche gli a capo 
    	
         cout<<s;
    
	
	}

        f.close();

            
            
}

/*lettura file riga per riga compresi spazi*/
void FileString()
{
        cout<<endl;
        string s;
	ifstream f;
	f.open("file.txt",ifstream::in);

	while( getline(f,s))
	{
	
            
	cout<<s;
		cout<<endl;
	}
	
	f.close();    
	
}

/*riscrittura << per file*/    
ostream& operator<<(ostream &o,ifstream &f)
{
    
    
    string s;
   
    
    while(getline(f,s))
    {
        
        o<<s<<endl;
    }
    
    return o;
}