Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 16:17   #1
metagalaxy
 
Регистрация: 08.07.2013
Сообщений: 4
По умолчанию Объясните вывод

Код:
#include <iostream>
#include <conio.h>
 
int main()
{
    using namespace std;
    char ch;
    int ct1, ct2;
    ct1 = ct2 = 0;
    while ((ch = cin.get()) != '$')
    {
          cout << ch;
          ct1++;
          if (ch = '$')
             ct2++;
          cout << ch;
    }
    cout << "ct1 = " << ct1 << ", ct2 = " << ct2 << "\n";
    getch();
    return 0;
}
Я ввожу:
Hi! [ENTER]
Send $10 or $20 now![ENTER]
Вывод:
Hi! [ENTER]
H$i$!$
$Send $10 or $20 now![ENTER]
S$e$n$d$ $ct1 = 9, ct2 = 9

Мне дали подсказку, что ввод буферизуется, но я не могу понять почему после каждой буквы пишет '$'.

Последний раз редактировалось metagalaxy; 09.07.2013 в 16:28.
metagalaxy вне форума Ответить с цитированием
Старый 09.07.2013, 16:33   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Код:
if (ch = '$')
Постоянно происходит присваивание '$' переменной ch и последующий вывод cout << ch;
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 09.07.2013, 16:38   #3
metagalaxy
 
Регистрация: 08.07.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Код:
if (ch = '$')
Постоянно происходит присваивание '$' переменной ch и последующий вывод cout << ch;
точно, спасибо

А буферизация ввода тут при чем?
metagalaxy вне форума Ответить с цитированием
Старый 09.07.2013, 17:00   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Под буферизацией, возможно, подразумевается сохранение символа в переменной ch = cin.get().
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните Андрей77777 Паскаль, Turbo Pascal, PascalABC.NET 0 21.12.2012 00:46
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр Gareek Помощь студентам 2 23.12.2011 21:41
Объясните! (С++) slim>>> Помощь студентам 3 16.03.2010 19:26
Объясните Alexsssandr Помощь студентам 2 17.02.2010 20:50
Объясните Sergo(1) Помощь студентам 2 10.05.2009 22:46