Można to zrobić, konwersję z int na string, na wiele sposobów i będzie działało lepiej czy gorzej. Jednak czy nie lepiej to zrobić najlepiej jak można, lub w sposób zbliżony do tego jak robią do zawodowcy, mistrzowie? Sposób przedstawiony w poście powyżej oczywiście działa dla n>0 i autor słusznie zwrócił uwagę na błędy pytającego ale jego program nie podoba mi się, jest nie czytelny, bufor [50] na konwersję inta [10 znaków + sign + \0] jest dużo za duży, co z konwersją 0 i co ze znakiem dla liczb ujemnych?
Wystarczy/ło tylko poszperać i poszukać.
Najlepsza, najstarsza, książka jaką znam, do c, jest też dla c++ bardzo dobrym [najlepszym] rozkowiązaniem.
Jest to niezastąpiona: Kernighan and Ritchie's Język C ... lib.h/itoa](http://en.wikibooks.org/wiki/C_Programming/C_Reference/stdlib.h/itoa)
Tam, sposób K&&R, wykorzystuje na końcu dodatkowo funkcję odwracającą string - funkcję reverse.
Poniżej jedna z moich propozycji, bez reverse, bez komentarzy i wyjaśnień [możliwe że też nieczytelna i zagmatwana] z wykorzystaniem wskaźnika. Zobacz-kliknij show submissions a potem more:
[bbone=cpp,1796]
include
using namespace std;
int main() {
char *ip, liczbaAsci[12] = {0}; //mozna tak = {0}
liczbaAsci[11] = 0; // lub wystarczy tylko wyzerowac ostatni element, tu -> [11]=0
int liczba, sign;
while(cin >> liczba){
ip = &liczbaAsci[11];
if(liczba >= 0)
sign = 0;
else {
sign = 1;
liczba = -liczba;
}
do{
*--ip = liczba % 10 + '0';
liczba /= 10;
} while(liczba > 0);
if(sign) *--ip = '-';
cout << ip << endl;
}
return 0;
}
[/bbone]
Oczywiście, należałoby zapisać to jako funkcję, ale to już homework.