Wczytywanie liczb do wektora zakończone znakiem '|'
Ostatnio zmodyfikowano 2015-08-04 15:25
darek_145 Temat założony przez niniejszego użytkownika |
Wczytywanie liczb do wektora zakończone znakiem '|' » 2015-08-03 15:47:39 Witam, Próbuje napisać program dzięki któremu będę wczytywał do wektora liczby aż do momentu, w którym wpisze znak '|'. Niestety nie bardzo wiem jak się za to zabrać. Jeżeli użyje pętli while( cin >> number ) { } zakładając, że number jest typu int to program zatrzyma się w momencie wpisania czegokolwiek innego od liczby całkowitej. Jak inaczej mógłbym rozwiązać ten problem? Z góry dzięki! |
|
carlosmay |
» 2015-08-03 15:59:38 Przecież to działa. Czemu szukasz dalej?
|
|
darek_145 Temat założony przez niniejszego użytkownika |
» 2015-08-03 16:05:26 No właśnie nie działa, przynajmniej nie tak jak powinno. Wczytywanie powinno zakończyć się tylko i wyłącznie przy otrzymaniu na wejściu znaku '|'. Poza tym w momencie wpisania czegoś innego niż typ całkowity program kończy działanie ignorując kolejne instrukcje cin. |
|
Monika90 |
» 2015-08-03 16:38:05 char ch; while (file >> ch && ch != '|') if (std::isdigit(static_cast<unsigned char>(ch))) { file.unget(); int x; file >> x; vec.push_back(x); }
EDIT: z tym że to nie poradzi sobie z liczbami ujemnymi, ale nie trudno to poprawić
|
|
michal11 |
» 2015-08-03 16:38:20 Wczytuj jako string i sprawdzaj co wczytało. |
|
darek_145 Temat założony przez niniejszego użytkownika |
» 2015-08-03 19:21:51 Dzięki Monika90, o to mi właśnie chodziło. Jeszcze tylko spróbuje rozszerzyć to o liczby ujemne. A co do Twojego pomysły michał11 to jest o tyle nieodpowiedni, że ja chce mieć vector intów, a jak sobie powczytuje stringi to ich nie przekonwertuje na int. |
|
michal11 |
» 2015-08-03 19:32:38 to ich nie przekonwertuje na int |
A niby dlaczego nie ? Zresztą to co napisała Monika to, co do zasady, praktycznie to samo co napisałem ja. |
|
JMII89 |
» 2015-08-03 20:10:51 A do czego jest atoi(string.c_str());? Żeby przekonwertować string na int. |
|
« 1 » 2 |