Chcę wczytać pewną liczbę np. 12345 w ten sposób, że każda z cyfr zostanie wczytana do innej zmiennej. Można zrobić to tak: cin>>a>>b>>c>>d>>e; ale wtedy trzeba oddzielać poszczególne cyfry spacją. Wyglądało by to tak: 1 2 3 4 5. Ja chcę by programowi podać je w ciągu 12345. W C było coś takiego jakieś określanie, że zmienna jest wielkości jednej cyfry czy coś ale jak to zrobić w C++?
0
0
Może:
#include <iostream>
#include <sstream>
#include <vector>
int main() {
using namespace std;
stringstream ss("1234");
vector<unsigned short> shorts;
unsigned char c;
while(ss >> c) {
shorts.push_back(c - '0');
}
for (vector<unsigned short>::const_iterator i = shorts.begin();
i != shorts.end(); ++i) {
cout << *i << '\n';
}
return 0;
}
0
Chodzi mi o coś takiego w C:
scanf("%1u%1u%1u",&p1,&p2,&p3);
Wtedy gdy podam programowi 123(bez spacji) i kliknę enter to każda cyfra zostanie przypisana innej zmiennej. Tylko jak to zrobić w C++ na coutach? Musi być jakiś tego odpowiednik chyba.
0
wczytaj całą liczbę cinem, potem obliczaj resztę z dzielenia przez dziesięć i dziel przez dziesięć aż do zera
0
@up - przecież dostałeś gotowy kod na to co chciałeś...? Zamiast wczytywać do wektora wczytuj do zmiennych, i zamiast używać stałego stringstreama twórz go podczas działania aplikacji z tekstu podanego przez użytkownika.
edit: no masz, już nie up. Teraz @2up
0
Nie no, a ja myślałem, że to już na dobrą sprawę gotowcem walnąłem. Wygląda na to, że jednak nie. ;)