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

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

Войти
Регистрация
Восстановить пароль
 
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
#1

В чем разница? - C++

09.09.2013, 14:44. Просмотров 366. Ответов 7
Метки нет (Все метки)

Скажите в чем разница между двумя кусками кода:

C++
1
2
3
4
5
std::string a;
    while ((std::cin>>a)!="Quit")
    {
        std::cout<<a;
    }
C++
1
2
3
4
5
6
7
std::string a;
    std::cin>>a;
    while (a!="Quit")
    {
        std::cout<<a;
        std::cin>>a;
    }
Причем первый вариант не работает как надо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2013, 14:44     В чем разница?
Посмотрите здесь:

C++ В чем разница.
В чем разница? C++
C++ в чем разница?
C++ В чем разница
Подскажите в чем разница C++
C++ Объясните в чем разница
В чем разница C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5579 / 2613 / 239
Регистрация: 01.11.2011
Сообщений: 6,427
Завершенные тесты: 1
09.09.2013, 14:59     В чем разница? #2
Предусловие/постусловие?
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 211
09.09.2013, 15:01     В чем разница? #3
Peperovich, а как должен работать первый вариант по Вашему?
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
09.09.2013, 15:03  [ТС]     В чем разница? #4
Ну по мойму оба варианта должны работать так:
1. вводится слово в поток
2. читается слово из потока пока не встретиться Quit
3. выводится слово в поток

Второй вариант так работает, а первый на ввод слова Quit не реагирует выходом из программы.
0x0d9
8 / 8 / 2
Регистрация: 04.09.2013
Сообщений: 17
09.09.2013, 15:04     В чем разница? #5
Цитата Сообщение от Peperovich Посмотреть сообщение
std::cin>>a
неявно вызывает operator void * объекта cin.
Т.е. пляшем от того, что cin>>a возвращает указатель.
Петррр
5935 / 3372 / 334
Регистрация: 28.10.2010
Сообщений: 5,926
09.09.2013, 15:10     В чем разница? #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Предусловие/постусловие?
Где?
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
09.09.2013, 15:14  [ТС]     В чем разница? #7
Цитата Сообщение от 0x0d9 Посмотреть сообщение
неявно вызывает operator void * объекта cin.
Т.е. пляшем от того, что cin>>a возвращает указатель.
Спасибо, теперь понятно почему не работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 15:28     В чем разница?
Еще ссылки по теме:

В чем разница двух перегрузок? C++
Шаблоны. В чем разница? C++
C++ Не могу понять, в чем разница
C++ '0' и 0, в чем разница?
C++ Ссылки vs указатели - в чем разница?

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

Или воспользуйтесь поиском по форуму:
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
09.09.2013, 15:28     В чем разница? #8
в первом случае ты сравниваешь поток cin c "Quit"
во втором случаем ты сравниваешь строку с "Quit"
Yandex
Объявления
09.09.2013, 15:28     В чем разница?
Ответ Создать тему
Опции темы

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