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

Ошибка при повторном получении данных из потока cin - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отключение usb портов по отдельности http://www.cyberforum.ru/cpp-beginners/thread642821.html
Вот такая тема: начальство выиграло тендер на поставку компов, компы собрались, доставили, а при сдаче вот такая беда... По условиям договора, в компах должна быть возможность отключения по...
C++ Рекурсия: нахождение чисел Фибоначчи (нужны комментарии) это функция нахождения чисел фибоначи. немогу понять как она работает можите написат как это происходит в программе. отладка много не сказала. int ret(int n) { if(n == 0 || n == 1) return n;... http://www.cyberforum.ru/cpp-beginners/thread642796.html
Что то типа goto C++
Мне нужно что нибудь похожее на goto... Только мне нужно перескочить из функции в одном файле в функцию другого файла
C++ Описать класс "Массив"
Язык С++ 1.Описать класс "Массив". Методы массива: конструктор с одним параметром - длина массива; ввод и вывод элементов массива; проверка, является ли массив упорядоченным по убыванию;...
C++ Сортировка вставками http://www.cyberforum.ru/cpp-beginners/thread642710.html
Где-то ошибка в цикле... помогите) ... int array = {3, 2, 1}, min = 0, a = 0, b = 0; ... for(a = 1; a < size; ++a); {
C++ Ошибка. Переопределение параметров в функции Добрый вечер всем! Такая задача: Необходимо составить программу для систем счисления (от 2 до 36) пользователь вводит число в десятичной системе и вводит номер системы. например: число 350 в... подробнее

Показать сообщение отдельно
Gibboustooth
733 / 201 / 11
Регистрация: 23.06.2011
Сообщений: 440
27.08.2012, 13:37  [ТС]
Переписал функцию input:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vector<int> input()
//Get from cin into vector integer numbers
{
    vector<int> v;
    int temp;
    char c=' ';
    cout<<"Please, enter row of integers, separated with space. To exit press <|>\n";
 
    while(cin&&c!='|') 
    {
        cin>>c;
        if (c!='|') {
            cin.putback(c);
            cin>>temp;
            v.push_back(temp);
        }
    }
    if (cin.eof())
        err("Wrong input!");
    else
        return v;
}
Вроде работает

Спасибо за помощь.

cin.clear(); кстати говоря, не помогал. Не знаю почему.

Добавлено через 37 минут
P.S. Работает, но неправильно. Я, видимо, не вполне понимаю, как работает cin.
На строку "1а2 3" он не становится cin.eof. Зато проверка if (c!='|') работает нормально.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru