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

Задача из книги Страуструпа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для заданного целого числа n вычислить значение суммы http://www.cyberforum.ru/cpp-beginners/thread619500.html
Задача: Для заданного целого числа n вычислить значение суммы: В знаменателе сумма всевозможных комбинаций i1+i2+...+in Для n=3 for (i1=1;i1<=n;i1++) for (i2=1;i2<=n;i2++) for...
C++ Ввод - вывод cBigNumber Подскажите кто нибудь несложный способ считывания с Edita в cBigNumber, обратно... http://www.cyberforum.ru/cpp-beginners/thread619495.html
Какая дополнительная память потребуется и как она связана с количеством исходных данных C++
Такой вопрос, "Какая дополнительная память потребуется и как она связана с количеством исходных данных?" Допустим я заполнил массив из 100.000 рандомно, пусть int. Затем я сортирую этот массив. ...
C++ Составить описание класса, обеспечивающего представление матрицы произвольного размера
вариант1 Условие задачи: Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого...
C++ Гистограмка = буутс + мап http://www.cyberforum.ru/cpp-beginners/thread619407.html
Код компилируется. Но что то не так в свитч кейс лупе... НЕ правильно считает. См. принтскрин. Поскажите плиз где я накосячил. Заранее спасибо! // #include <boost/random.hpp> // Convenience...
C++ Класс ostream Как можно создать класс ostream? Такое ощущение, что кроме cout ничего из этого класса создать невозможно. подробнее

Показать сообщение отдельно
alsav22
5429 / 4824 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2012, 04:41
Цитата Сообщение от yuron_477 Посмотреть сообщение
Ну, cin.get() != '\n' здесь для того чтоб одно из условий цыкла оставалось истинным - тогда нас не выбросит из цыкла при вводе буквы, а начнет обрабатываться следующий оператор - if (!cin). А cin>>first, cin>>second это просто выражения через оператор "запятая". Можно было бы написать
Меня тут (while (cin>>first, cin>>second || cin.get() != '\n') интересует очерёдность работы cin и cin.get(). Что и когда cin.get() здесь извлекает? Если написать так:
C++
1
while (cin>>first, cin>>second || true)
, то ваш код так же хорошо работает.
А понятней так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while (true)
    {
        cin>>first, cin>>second;
        if (!cin)
        {
            cin.clear();
            if (cin.get() == '|')
                break;
            cin.sync();
            cout<<"Должно быть целое число. Попробуйте еще: \n";
            continue;
        }
    cout<<first<<", "<<second<<endl;
    }
Ведь то же самое?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.