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

Проверка ввода целого числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как использовать функцию flush()? http://www.cyberforum.ru/cpp-beginners/thread23489.html
для проверки правильности вводимых данных использую такой код #include <stdio.h>; #include <iostream>; using namespace std; void main() { int a; while (!scanf("%d", &a)) {
C++ Сформировать матрицу размера M*N, у которого в каждом столбце содержатся все числа из исходного набора Даны целые положительные числа М и N инабор из М чисел. Сформировать матрицу размера M*N, у которого в каждом столбце содержатся все числа из исходного выбора(в том же порядке) M=4 ... http://www.cyberforum.ru/cpp-beginners/thread23474.html
C++ Помогите разобраться в обозначениях
Си++ изучал давно, а сейчас потребовалось все срочно вспомнить... Так вот помогите разобраться в следующих строчках: const f32 MOVEMENT_SPEED = 5.f; const u32 now = device->getTimer()->getTime();...
Данные про автомобили C++
Вообщем прошу помощи с данной задачкой: "Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Даны сведения о 10 автомобилях. Найти фамилии владельцев и номера автомобилей...
C++ Найдите сумму элементов одномерного массива размерностью 10 http://www.cyberforum.ru/cpp-beginners/thread23443.html
Составить программу следующего примера: Найдите сумму элементов одномерного массива размерностью 10.Разделите элемент этого массива на полученное значение (на языке С++):wall:
C++ Двумерный массив заполнить числами и вывести на экран Двумерный массив заполнить числами и вывести на экран.Поменять строки местами.Первую с последней.Все строки опустить вниз подробнее

Показать сообщение отдельно
Del_Piero_10
Smart is the new Sexy
25 / 25 / 1
Регистрация: 29.12.2008
Сообщений: 109
20.02.2009, 14:40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
 
void main()
{
int x;                              
bool success = false;  
  
system("chcp 1251");  
  
cout << "Введите значение" << endl;   
while(!success)  
{  
    cin >> x ;          
    if(cin.good())  
    {  
        cout << "Вы ввели значение " << x << endl;   
        success = true;  
    }  
    else 
        cout << "Значение введено неверно. Повторите ввод" << endl; 
        cin.clear();
        _flushall();
} 
}
Могу предложить такое решение проблемы первой задачи. У тебя цикл начинал зацикливатся, потому что поток был занят. Ты вводил неверный символ, и он оставался в потоке. Затем Cin >> повторялся и символ снова пытался записатся и не мог, и цикл зацикливался. Чтобы очистить поток я использовал следующее:

Код
        cin.clear();
        _flushall();
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru