Wczytywanie liczby.

0

Witam.
Napisałem program, który wypisuje w jednej linii dwie liczby. Liczby te są ze sobą połączone (nie ma między nimi spacji). Czy jest jakiś sposób dzięki któremu te dwie liczby wczytam (już jako jedną liczbę) do zmiennej typu int?

0

Wykorzystaj pozycyjność systemów liczbowych. Jak masz liczby 12 i 24 i chcesz z tego zrobić 1234 to trzeba wykonać działanie 12 * 100 + 24.

1

Można też skorzystać ze strumieni ;)

string tmp;
int a = 123, b = 456, c;
ostringstream ostr(tmp);
ostr << a << b;
istringstream istr(tmp);
istr >> c;
0
byku_guzio napisał(a)

Można też skorzystać ze strumieni ;)

string tmp;
int a = 123, b = 456, c;
ostringstream ostr(tmp);
ostr << a << b;
istringstream istr(tmp);
istr >> c;

Ale w moim programie liczba a nie jest wypisywana ze zmiennej a tylko z tablicy (każda cyfra jest w innym miejscu np. jak wypisuje 234 to a[0]=2, a[1]=3, a[2]=4).
Nie można wczytać tego za pomocą getline?
Tylko za bardzo nie wiem jak tego używać.

1

Nie możesz wczytać tego, co wysłałeś do strumienia, strumień wejściowy i wyjściowy są zupełnie różnymi obiektami. Zastanów się nad sensem tego. Po co program miałby mieć dostęp do danych, które sam wygenerował. Wprowadzałoby to niepotrzebne zamieszanie. Dodatkowo operacje IO są z reguły wolne, więc wykorzystywanie wyjścia jako jakiś rodzaj buforu jest bez sensu. Najprościej rozwiązać twój problem można przez znalezienie potęgi 10, która jest większa niż druga liczba. Następnie do drugiej liczby dodajesz pierwszą liczbę pomnożoną przez tę potęgę 10.

Jeżeli masz tablicę cyfr to dla każdej kolejnej komórki tablicy pomnóż liczbę wyjściową (zainicjalizowaną zerem) przez 10 i dodaj zawartość komórki tablicy.

0

Jeśli wiesz które to indeksy w tablicy to możesz zmienić to na stringa a potem znów na inta .

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