x
Jeżeli dobrze pamiętam, to najprościej byłoby tak:
int a,b,c;
cin >> a >> b >> c;
Wtedy wpisujesz liczby oddzielone spacjami i trafią one gdzie trzeba. Założenie jest takie, że Ty jesteś jedynym użytkownikiem programu, bo metoda ta nie jest odporna na błędy.
A jak chcesz zaakceptować, zakończyć wprowadzanie?
Pewnie musiał byś zmieniać jej rozmiar używając tablicy temp itp. To strata czasu, więc najlepiej poczytaj o Vectorach a na pewno rozwiąże to twój problem.
Możesz wczytywać po jednym znaku (bajcie) i samodzielnie rozpoznawać czy to cyfra, litera czy enter. Przyda Ci się do tego cin.get. Zajrzyj na tą stronę (cin to obiekt istream):
http://www.cplusplus.com/reference/iostream/istream/
a także tablica ASCII
std::string line;
std::getline(std::cin, line);
std::istringstream lineStr(line);
std::istream_iterator<int> it(lineStr), end;
std::vector<int> numbers(it, end);
Includy to iostream
, vector
, sstream
i iterator
.
Wczytujesz całą linię (aż do entera) za pomocą getline
, tworzysz sobie z niej strumień, potem iterator po intach. Takie iteratory działają w prosty sposób - biorą strumień i pobierają z niego wartość podanego typu. No i na koniec kopiujesz sobie do wektora wszystkie wartości. Równoważne z while(lineStr >> liczba) numbers.push_back(liczba)
.
W gruncie rzeczy różnica jest niewielka. Wector to w sumie tablica pod spodem. Jeżeli chcesz użyć wektora jako tablicy o stałym rozmiarze (w konstruktorze przekazać wielkość) to i wydajnościowo będzie identycznie (operowanie na iteratorach jest tym samym, co na wskaźnikach). Jedna z różnic jest taka, że tablica zawsze będzie jednym ciągiem danych w pamięci, a wektor niekoniecznie (chociaż nowy standard już tego wymaga).
może nie jest to zalecana metoda do programów konsolowych, ale w bibliotece conio.h znajduje się funkcja getch() która nie czeka na enter
A czy conio.h to przypadkiem nie był tylko w Borlandzie? W dodatku nieprzenośne.
w mingw też jest. większość używa windowsa, więc przenośność to nie jest problem
krwq napisał(a)
większość używa windowsa, więc przenośność to nie jest problem
To jest bardzo złe podejście do programowania.
krwq napisał(a)
może nie jest to zalecana metoda do programów konsolowych, ale w bibliotece conio.h znajduje się funkcja getch() która nie czeka na enter
Też znam tą bibliotekę, ale chyba nie jest w standardzie, więc dopóki jest wybór to lepiej jej nie polecać.