Odwrócenie stringów wczytanych liczb z pliku tekstowego

0
string liczba, druga_liczba = "";
int n = liczba.size()-1;

while(plik >> liczba)
{
    for(int i=n; i>=0; i--)
{
    druga_liczba+=liczba[i]; //odwrocenie liczba
}
cout<<druga_liczba<<endl;
}

W pliku tekstowym, z którego wczytuje, znajduję się 1000 liczb 2 do 9-cyfrowych.
Chce każdą z nich wypisać od tyłu. Pętla ogólnie działa na konkretnych stringach (próbowałem), wczytanie samych stringow liczba z pliku tez działa. Program się kompiluje, lecz nic nie robi - jakby nie widział tych liczb. Nie mam pomysłu gdzie leży błąd :(

2

Jeśli przedstawiony kod działa poprawienie, to po co jest wstawiony?
Błąd jest gdzieś indziej. Wstaw cały, albo te fragmenty, w których coś mogło pójść nie tak.
Debuguj kod, żeby namierzyć miejsce błędu.

Zgaduję, że przegladasz zawartość pliku, a później ponownie chcesz wszystko wczytać do wykonania operacji. Musisz wrócić na początek tego pliku.

Edit: deklaracja druga_liczba powinna być w pętli, bo teraz każdy wczytany string będzie do niej dopisywany, a w zasadzie to ta zmienna jest niepotrzebna, jeśli służy tylko do wyoiasania zawartości.

while(file >> word){
   for(auto it = word.crbegin(); it != word.crend(); ++it) {
      cout << *it;
   }
   cout << endl;
}
3

Czemu ma służyć ta linijka?

int n = liczba.size()-1;

n zawsze jest 0 dlatego że deklarujesz string liczba wyżej który jest pusty.

Z tego powodu pętla for wykona się tylko raz na każdą iterację pętli while.

1 użytkowników online, w tym zalogowanych: 0, gości: 1