Witam, chciałem napisać program, który pobiera liczby z pliku tekstowego i wypisuje je do nowego pliku tekstowego z lekką zmianą, mianowicie każda cyfra jest oddzielona myślnikiem po czym następuje wypisanie słowne liczby. Problem leży w tym, że program działa tylko do momentu kiedy liczba jest mniejsza od 10, a powyżej już działają tylko myślniki, może ktoś spojrzeć na ten makabryczny kod i wskazać gdzie leży błąd?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int i, d,j,s;
ifstream wej("dane3.txt");
ofstream wyj("wynik3.txt");
while (!wej.eof())
{
wej>>i;
if (i<10)
{
switch (i)
{
case 1: wyj<<i<<" - jeden"; break;
case 2: wyj<<i<<" - dwa"; break;
case 3: wyj<<i<<" - trzy"; break;
case 4: wyj<<i<<" - cztery"; break;
case 5: wyj<<i<<" - piec"; break;
case 6: wyj<<i<<" - szesc"; break;
case 7: wyj<<i<<" - siedem"; break;
case 8: wyj<<i<<" - osiem"; break;
case 9: wyj<<i<<" - dziewiec"; break;
}
cout << i<<endl;
}
if (i>9 && i<100)
{
d=i;
wyj<<d/10<<"-"<<(d%10);
switch (d)
{
case 1: wyj<<d<<" - jeden "; break;
case 2: wyj<<d<<" - dwa "; break;
case 3: wyj<<d<<" - trzy"; break;
case 4: wyj<<d<<" - cztery"; break;
case 5: wyj<<d<<" - piec"; break;
case 6: wyj<<d<<" - szesc"; break;
case 7: wyj<<d<<" - siedem"; break;
case 8: wyj<<d<<" - osiem"; break;
case 9: wyj<<d<<" - dziewiec"; break;
}
cout << d<<endl;
}
if (i>99&&i<1000)
{
j=i;
wyj<<j/100<<"-"<<(j%100)/10<<"-"<<(j%10);
switch (j)
{
case 1: wyj<<j<<" - jeden "; break;
case 2: wyj<<j<<" - dwa "; break;
case 3: wyj<<j<<" - trzy"; break;
case 4: wyj<<j<<" - cztery"; break;
case 5: wyj<<j<<" - piec"; break;
case 6: wyj<<j<<" - szesc"; break;
case 7: wyj<<j<<" - siedem"; break;
case 8: wyj<<j<<" - osiem"; break;
case 9: wyj<<j<<" - dziewiec"; break;
}
cout << j<<endl;
}
wyj<<endl;
}
wej.close();
wyj.close();
return 0;
}