Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Почему программа уходит в рекурсию при передачи в нее буквы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнить два массива одинаковой длины http://www.cyberforum.ru/cpp-beginners/thread1226733.html
Сравниваю два массива длиной три. Сравнивать нужно с конца. #include <iostream> using namespace std; int main (){ int array; cin>>array>>array>>array; int array_2;...
C++ Как скомпилировать код из под Windows на mac и linux? Как скомпилировать код из под windows на mac и linux? http://www.cyberforum.ru/cpp-beginners/thread1226727.html
Меню для программы Числа Фибоначчи, ряд Тейлора C++
//--------------------------------------------------------------------------- #pragma hdrstop #include<stdlib.h> #include<stdio.h> #include<conio.h>...
Удаление узла в линейном списке C++
У меня есть структура (файловая система) , я могу помещать туда файлы (здесь все работает). Содержаться следующие поля : имя файла , время создания , количество обращений. Количество обращений и...
C++ Конструктор, принимающий параметр http://www.cyberforum.ru/cpp-beginners/thread1226702.html
привет. посмотрите листинг: // Префиксный и постфиксный операторы инкремента #include <iostream> using namespace std; class Counter { public: Counter(); ~Counter() {}
C++ Найти номер первого положительного элемента массива и сумму элементов правее него Найти номер первого положительного элемента массива b1,b2,b3,...,b10 и сумму элементов правее него. Вот мои наработки, сумма на 1 больше чем надо. #include <iostream> #include <conio.h> #include... подробнее

Показать сообщение отдельно
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.07.2014, 15:52
Цитата Сообщение от RareScrap Посмотреть сообщение
Почему, когда вводишь в программу букву, выводится бесчисленное множество нулей. Разве программа не должна просить ввести новое значение после каждой итерации цикла?
Потому что ввод буквы переводит поток ввода в невалидное состояние.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int a;
    for(;;)
    {
        cin >> a;
        if(cin.good())
        {
           cout << a;
        }
        else
        {
           cin.clear(); //Сбрасываем флаг ошибки
           cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); //Убираем невалидные символы из буфера 
        }
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru