Pongo una solución que me parece más clara y mejor:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int longitudNumero, enteroEntrada, enteroSalida = 0, digito;
string enteroString;
ifstream entrada;
ofstream salida;
entrada.open("entrada.txt");
salida.open("salida.txt");
if (entrada.is_open()){
entrada >> enteroEntrada;
while (enteroEntrada != 0){
if (enteroEntrada > 0) {
digito = enteroEntrada % 10;
while (enteroEntrada != 0) {
salida << digito;
enteroEntrada = enteroEntrada / 10;
digito = enteroEntrada % 10;
}
salida << endl;
}
entrada >> enteroEntrada;
}
}
else {
cout << "ERROR: el archivo no pudo abrirse." << endl;
}
entrada.close();
salida.close();
return 0;
}
Gracias.
PD: en el for no haría falta hacer "(enteroEntrada - digito) / 10", bastaría con "(enteroEntrada / 10)".