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

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

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

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

27.10.2010, 10:29. Просмотров 726. Ответов 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 минуты
Мдя, не понятно, как работает флаг ошибки потока
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 10:29     Ошибки потоков
Посмотрите здесь:

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

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

Разделение потоков - C++
Нужно в главном потоке запустить 3 потока,дождаться их завершения,потом запустить ещё 3 и тоже дождаться их завершения,однако на деле идёт...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 подойдет? Правда проверять придется посимвольно...
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 12:39     Ошибки потоков #3
Цитата Сообщение от LineStown Посмотреть сообщение
Но строку типа "2e2" - программа определяет как верное число.
такую строку поток воспримет до первого "неверного" символа, то есть в число запишется только 2.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 16:09     Ошибки потоков
Еще ссылки по теме:

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

Семафоры(7 потоков) - C++
Требуется создать программу которая будет создавать 7 потоков и в каждом выполнять операцию а=а-1(изначально установить а=10). Доя решение...

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

приоритет потоков - C++
Где можно найти информацию по таким темам: Относительный приоритет потока, динамическое изминение уровня потока?

Вектор потоков - C++
В программе мне требуется иметь доступ одновременно к большому количеству файлов ( чтение ). Чтение я осуществляю через ifstream. Сначала...

Перенаправление потоков - C++
Мне необходимо использовать в своей программе потом другой. Например: открыл я консоль, набрал команду, но результат слишком большой, я его...


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

Или воспользуйтесь поиском по форуму:
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
27.10.2010, 16:09  [ТС]     Ошибки потоков #4
Цитата Сообщение от fasked Посмотреть сообщение
такую строку поток воспримет до первого "неверного" символа, то есть в число запишется только 2.
Спасибо, все сразу стало ясно, флаг будет false, если сразу будет ошибочный символ в потоке, или будет считывать до первого неправильного.
Yandex
Объявления
27.10.2010, 16:09     Ошибки потоков
Ответ Создать тему
Опции темы

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