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

Траблы с cin.get

14.03.2018, 09:51. Показов 522. Ответов 1
Метки нет (Все метки)

Народ, почему в условии в cin.get (!'\n') выдаёт ошибку
C++
1
2
3
4
5
6
while (!(cin >> v)|| cin.get(!'\n'))    //проверка на ввод чисел
    {
        cin.clear();    //восстановление работы в случае ошибки
        cout << "Ошибка введите корректное значение \n"; //вывод сообщения об ошибке ввода
        cin.get();
    }
Вот весь код
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double x, y, z, a, b;
    int v;
    
    setlocale(LC_ALL, "Russian");
 
    cout << " Чтобы ввести свои значения нажмите 1 \n Чтобы использовать данные по умолчанию 2      ";
    //cin >> v;
    while (!(cin >> v)|| cin.get(!'\n'))    //проверка на ввод чисел
    {
        cin.clear();    //восстановление работы в случае ошибки
        cout << "Ошибка введите корректное значение \n"; //вывод сообщения об ошибке ввода
        cin.get();
    }
    while (v <= 0 || v > 2)
    {
        cout << "Введите корректную команду ";
        v = 0;
        cin >> v;
    }
 
    if (v >1)
    {
        x = 2.7;
        y = 1.83;
        z = -0.789;
        cout << " x = 2.7 \n y = 1.83 \n z = -0.789 \n";
        a = fabs(pow(x / y, 1. / 3.) - 2 * pow(y, 3. / 2.));
        b = (1 + exp(2.*z) / (a + 7.8));
        cout << " a = " << a << "\n b= " << b << endl;
    }
    else
    {
        cout << "X= ";
        cin >> x;
        cout << "\nY=";
        cin >> y;
        cout << "\nZ=";
        cin >> z;
 
        while (y = 0)
        {
            y = 0;
            cout << "Y не должен быть равен 0, введите Y ";
            cin >> y;
        }
        a = fabs(pow(x / y, 1. / 3.) - 2 * pow(y, 3. / 2.));
        b = (1 + exp(2.*z) / (a + 7.8));
        cout << " a = " << a << "\n b= " << b << endl;
 
    }
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2018, 09:51
Ответы с готовыми решениями:

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

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

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

Траблы с визуалкой и sql в чем траблы незнаю
Все работало нормально что визуалка что сам sql. а тут хз что за ошибка. Таже ошибка и в визуалке.

1
nd2
3416 / 2796 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
14.03.2018, 14:12 2
Цитата Сообщение от XIRURG_ Посмотреть сообщение
почему в условии в cin.get (!'\n') выдаёт ошибку
Компилятор пишет - почему.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2018, 14:12

Метод 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...

Для чего в код вводится cin.ignore после того, как cin>> уже сработало?
Доброго времени суток! Просматриваю простой код. Вводится строка типа string: фунты и дюймы Затем...


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

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

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