Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
7 / 7 / 3
Регистрация: 16.07.2012
Сообщений: 56
1

Пролетает cin >>

01.08.2012, 18:45. Просмотров 595. Ответов 4
Метки нет (Все метки)

Нужно заполнять вектор пока не введено 'x', потом сложить количество (введенное) первых элементов.
После 'x' программа сразу завершается!!! . И еще вопрос как фильтровать ввод cin >> (число) от не числа. Спасибо!!!

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
27
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    vector<double> stream;
    double n, sum;
    int count;
    
    sum = 0;
    while (cin >> n)
    {
        if (n == 'x') break;
        stream.push_back(n);
    }
    cout << "Сколько сложить:\n";
    cin >> count;  // не считавает, пролетает
    
    if (count > stream.size()) return 1;
    
    for (int i=0; i<count; i++)
        sum += stream[i];
        
    cout << "Sum=" << sum << endl;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2012, 18:45
Ответы с готовыми решениями:

Пролетает cin, после того как goto возвращается в начало программы
Мне нужно сделать программу, которая будет исключать варианты ввода не целых чисел. Если вводить...

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод....

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не...

4
14 / 14 / 3
Регистрация: 28.07.2012
Сообщений: 57
01.08.2012, 18:49 2
system("pause");
перед return
0
Модератор
Эксперт Python
26655 / 13901 / 2644
Регистрация: 12.02.2012
Сообщений: 22,783
Записей в блоге: 1
01.08.2012, 18:53 3
Цитата Сообщение от nsashans Посмотреть сообщение
if (n == 'x') break;
- это сравнение переменной "double" с char-ом? Работает?
0
7 / 7 / 3
Регистрация: 16.07.2012
Сообщений: 56
01.08.2012, 18:54  [ТС] 4
Цитата Сообщение от b_kasenov47 Посмотреть сообщение
system("pause");
перед return
Linux



Цитата Сообщение от Catstail Посмотреть сообщение
- это сравнение переменной "double" с char-ом? Работает?
нет, при любом вводе что не число - > завершение
0
Почетный модератор
7265 / 2542 / 256
Регистрация: 29.07.2006
Сообщений: 13,469
01.08.2012, 19:11 5
Цитата Сообщение от nsashans Посмотреть сообщение
n == 'x'
n у тебя double. До проверки этого условия у тебя дело даже не дойдет.
Цитата Сообщение от nsashans Посмотреть сообщение
нет, при любом вводе что не число - > завершение
А что ты ожидаешь, когда у тебя в cin детектируется ошибка конвертации вводимого значения?

Добавлено через 2 минуты
Цитата Сообщение от nsashans Посмотреть сообщение
нет, при любом вводе что не число - > завершение
C++
1
2
3
4
5
6
7
8
9
10
    while (cin >> n)
    {
        if (n == 'x') break;
        stream.push_back(n);
    }
    if(cin.fail())
    {
        cin.clear();
        cin.ignore(256,'\n');
    }
Добавлено через 5 минут
Да, еще убери проверку на 'x', она не нужна.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2012, 19:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

пролетает gets в теле switch
не хочет запрашивать ввод строки, как будто строки gets(s); нету while (v != 1 &amp;&amp; v != 2) {...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...


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

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

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