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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
#1

Ошибки потоков - C++

27.10.2010, 10:29. Просмотров 792. Ответов 3
Метки нет (Все метки)

День добрый.
Проблема с определением ошибки ввода потока
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
26
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    int a;
    while(true)
    {
        cout << "Input:";
        cin >> a;
        if(cin.good())
        {
            cin.clear();
            cout << "Correct" << endl;
            cin.ignore(10,'\n');
        }
        else
        {
            cin.clear();
            cout << "Not correct" << endl;
            cin.ignore(15,'\n');
        }
    }
    return EXIT_SUCCESS;
}
Суть: программа проверяет: если введено число - то правильно, иначе ошибка.
Но строку типа "2e2" - программа определяет как верное число.
Может я, конечно, не правильно понял значение cin.good()\
Хотелось бы услышать ваше мнение

Добавлено через 21 час 24 минуты
Мдя, не понятно, как работает флаг ошибки потока
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 10:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибки потоков (C++):

Создание и завершение процессов и потоков. Приоритеты выполнения потоков - C++
Здравствуйте. Буду очень раз если поможете понять,что конкретно нужно сделать в вот этом задании,пока особого представления о...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Синхронизация потоков - C++
Есть статический класс к которому я хочу обращаться из разных потоков static class MyLog { public: static int log(std::string,...

Подмена потоков - C++
freopen(&quot;мой_файл.txt&quot;, &quot;w&quot;, stdout) Как заменить мой_файл.txt на stdout? В Си

3
Zerkalka
37 / 36 / 2
Регистрация: 09.03.2010
Сообщений: 79
27.10.2010, 10:45 #2
Про good() - The function returns true if none of the stream's error flags (eofbit, failbit and badbit) are set.
Причем тут числа?
Может функция isdigit подойдет? Правда проверять придется посимвольно...
0
fasked
Эксперт С++
4974 / 2554 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 12:39 #3
Цитата Сообщение от LineStown Посмотреть сообщение
Но строку типа "2e2" - программа определяет как верное число.
такую строку поток воспримет до первого "неверного" символа, то есть в число запишется только 2.
1
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
27.10.2010, 16:09  [ТС] #4
Цитата Сообщение от fasked Посмотреть сообщение
такую строку поток воспримет до первого "неверного" символа, то есть в число запишется только 2.
Спасибо, все сразу стало ясно, флаг будет false, если сразу будет ошибочный символ в потоке, или будет считывать до первого неправильного.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 16:09
Привет! Вот еще темы с ответами:

Исключения потоков - C++
У меня такой вопрос, как можно обработать исключение, если к примеру не получается открыть файл. То есть я делаю так: file.clear();...

синхронизация потоков - C++
проблема в следующем: есть 2 потока один считает некоторую сумму в цикле по столбцам матрицы второй должен выводить промежуточную...

Синхронизация потоков в c++ - C++
Совершенно не понятно что не так и как правильно. Задача: Отсортировать массив целых чисел. Программу разбить на два синхронизированных...

выбор потоков - C++
Здравствуйте форумчане! Суть проблемы такова, ниже дана программа для сортировки и надо чтобы пользователь сам мог выбирать во сколько...


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

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

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