Nieco zmodyfikowałem twoją funkcję, take a look.
int invert(int n)
{
int x; string liczba; // do tego string'a zapisuje poszczególne liczby
while(n!=0){
x=n%10;
n/=10;
liczba.push_back(x+'0'); //char o numerze jaki ma '0' + liczba, to zamieniło twojego x na char
}
return stoi(liczba);
// ewentualnie zamiast tego napisz: return atoi(liczba.c_str()); jeżeli stoi( ) nie działa;
}
Liczby są zapisywane w string'u w odwrotnej kolejności, a następnie tego string'a zamieniasz na int. stoi( ) pochodzi ze standardu C++11 i zamienia string na int. (s)tring (to) (i)nt.