С++, как проверить, пуст ли буфер std::cinC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 С++, как проверить, пуст ли буфер std::cin

Сообщение Anonymous »

Название вводит в заблуждение, поскольку меня больше интересует поиск альтернативного решения. Я интуитивно чувствую, что проверка того, пуст ли буфер, не самое идеальное решение (по крайней мере, в моем случае).

Я новичок в C++ и следую принципам и практикам программирования Бьярна Страуструпа с использованием C++. Сейчас я работаю над главой 7, где мы «усовершенствуем» калькулятор из главы 6. ​​(Я помещу ссылки на исходный код в конце вопроса.)

По сути, калькулятор может принимать от пользователя несколько входных данных, разделенных точкой с запятой.

Код: Выделить всё

> 5+2; 10*2; 5-1;
= 7
>         = 20
>         = 4
>
Но я бы хотел избавиться от символа подсказки ('>') для последних двух ответов и отображать его снова только тогда, когда запрашивается ввод данных пользователем. Моим первым инстинктом было найти способ проверить, пуст ли буфер, и если да, то вычислить символ, а если нет, продолжить вычисление ответа. Но после небольшого поиска в Google я понял, что задача не так проста, как я сначала думал... А также, возможно, это была не очень хорошая идея для начала.

Полагаю, по сути мой вопрос заключается в том, как избавиться от символов «>» в ​​последних двух ответах, когда имеется несколько входных данных. Но если проверка буфера cin возможна и не в конце концов является плохой идеей, мне бы хотелось знать, как это сделать.

Исходный код: https://gist.github.com/Spicy-Pumpkin/4 ... 41d7417675

Файл заголовка: http://www.stroustrup.com/Programming/P ... cilities.h

^ Вам нужен этот файл заголовка. Я предполагаю, что это написано самим автором.

Редактировать: я искал в Интернете некоторые решения, но, честно говоря, ни одно из них не имело для меня никакого смысла. Прошло около 4 дней с тех пор, как я начал изучать C++, а у меня очень слабый опыт в программировании, поэтому иногда даже гуглить бывает немного сложно.

Подробнее здесь: https://stackoverflow.com/questions/417 ... r-is-empty
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»