Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: C++ cin.ignore() или как обработать неудачный cin >> int  (Прочитано 5007 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Шинш

  • Автор темы
  • Гость
подскажите пожалуйста, вот фрагмент кода

(Нажмите, чтобы показать/скрыть)

задание в пунктах меню, но речь не о том(хотя, если я не правильно делаю, поправьте как лучше пожалуйста).
1й пункт решил сделать через параметры (например: ./a.out ps -al) (как сделать с вводом приличным не придумал еще)

но, если не проходит считывание в переменную item, происходит бесконечный цикл, т.к в буффере(или потоке?) символы остаются.

через

cin.clear();
cin.ignore();

вроде удается сделать адекват, но за каждый символ не считанный, происходит повторный вывод (((
как проциклить cin.ignore() ?(

или есть другой выход ?


Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
читать строку
парсить
проверять
действовать по обстоятельствам

твой вариант это для прогрева процессора

Шинш

  • Автор темы
  • Гость
Yurror,
спасибо )) исправил

string str;
cin >> str;
item = atol(str.c_str());

вот только такой вопрос... пока искал, наткнулся, что в C++11 есть stol

http://en.cppreference.com/w/cpp/string/basic_string/stol
http://msdn.microsoft.com/ru-ru/library/ee404883.aspx

но, мой g++ не видит такую функцию в <string>

Оффлайн kupamaan

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
добавь опцию при компиляции -std=c++0

Шинш

  • Автор темы
  • Гость
kupamaan,
спасибо )

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.