Wczytywanie liczb w jednym ciągu

0

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

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. ;)

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