0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
1

Как работает код?

18.11.2019, 20:25. Показов 1257. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n')
            ;
    cout << "Ошибка ввода. Введите количество ХП числом: " << endl;
}
Не могу понять как он работает, что делают cin.peek(), !(cin >> a), cin.clear(), cin.get()
Помогите разобраться.

С++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2019, 20:25
Ответы с готовыми решениями:

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код
Здравствуйте, столкнулся с такой проблемой. Код выполняемый из студии с пометкой debag, работает не...

Как работает код?
Я хочу знать, как работает этот код, может объяснить, с комментариями, пожалуйста. Задание: В...

Как работает код
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

4
Модератор
Эксперт С++
12624 / 10123 / 6096
Регистрация: 18.12.2011
Сообщений: 27,157
18.11.2019, 20:33 2
Лучший ответ Сообщение было отмечено IGoogleI как решение

Решение

C++
1
2
3
4
5
6
7
8
while (!(cin >> a) || (cin.peek() != '\n')) // вводим число (cin>>a) и смотрим следующий за числом символ cin.peek()
{
    // если число не ввелось или после числа были символы отличные от конца строки 
    cin.clear(); // сбрасываем флаги ошибок
    while (cin.get() != '\n') //  пропускаем все оставшиеся символы до конца строки
            ;  // пустой оператор
    cout << "Ошибка ввода. Введите количество ХП числом: " << endl;
}
0
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
18.11.2019, 20:51  [ТС] 3
zss, А как число не ввелось? Если я его вначале по любому ввожу?
0
Модератор
Эксперт С++
12624 / 10123 / 6096
Регистрация: 18.12.2011
Сообщений: 27,157
18.11.2019, 21:12 4
Для этого и написан первый while.
Он будет повторяться пока не введете правильно.
0
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
18.11.2019, 22:17  [ТС] 5
Разобрался спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2019, 22:17
Помогаю со студенческими работами здесь

Как работает код
С main вроде все понятно, а что дальше происходит? #include &lt;stdio.h&gt; int main(int t,int...

как работает код
Объясните как работает код &lt;?php if($_SERVER=='index.php'){ ...

Как работает код?
'use strict'; let messages = { &quot;Hello, {0}!&quot;: &quot;Привет, {0}!&quot; }; function i18n(strings,...

Как работает код?
Задание: Определить, что выведет программа. Код выводит: 1 2 3 4 Всё! #Почему выводится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru