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

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

Войти
Регистрация
Восстановить пароль
 
Познающая
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 25
#1

Использование функции get() без параметров - C++

27.04.2013, 19:11. Просмотров 343. Ответов 3
Метки нет (Все метки)

Добрый вечер!
Помогите, пожалуйста, разобраться с примером.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
int main ()
{
    char ch;
    while ( (ch=cin.get())!=EOF)
    {
        cout<<"ch: "<<ch<<endl;
    }
    cout<<"\ nDone!\ n";
 return 0;
}
Результат должен быть такой:
Hello
ch: H
ch: e
ch: l
ch: l
ch: o
ch:

(ctrl-z)
Done!

Мы вначале пишем слово Hello, каждый символ этого слова в процессе написания функция get присваивает переменной ch, затем каждое ее новое значение выводится на печать. Но мне не понятно почему такой результат(((
По-моему он должен быть таким:
H
ch: H
e
ch: e
l
ch: l
l
ch: l
o
ch: o
ctrl-z
Done!

Объясните, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2013, 19:11     Использование функции get() без параметров
Посмотрите здесь:

С++ Использование функций как параметров процедур - C++
Процедура Р формирует массив из элементов Z, для которых одновременно выполняются условия F1( Z)&gt;C, F2( Z&lt;D. В каждом столбце матрицы...

Использование функций в качестве формальных параметров - C++
Помогите вычислить f(x)/g(x), где в качестве f(x) и g(x) могут быть четыре различные функции, возвращающие вещественные значения

Использование значений, заданных по умолчанию для параметров функций - C++
Прочтено в учебнике &quot;Джесс Либерти. Си++ за 21 день&quot;. Мол, затерев значения переменной в главной функции, будут использоваться значения в...

Конструктор без параметров - C++
class stack { private: int top; // вершина стека int s; // массив в котором хранится стек public: stack (): top(0)...

Конструкторы с и без параметров - C++
Здравствуйте, Не могу понять где ошибка, на экран выводит мусор, а нужно бы нормальные человеческие числа.. #include &lt;iostream&gt; ...

Функция без параметров? - C++
Начал разбираться с библиотекой alglib для решения интеграла сложной функции. В документации нашел такой код, но не могу разобраться с...

Pthread взывать поток без параметров - C++
void RunClient(){ int iret; const char *message = &quot;Thread Run_Client()&quot;; if (!Running){ try{ _Running = true; ...

Шаблоны без параметров, что это? - C++
Наткнулся во включаемом файле iosfwd в Visual Studio 2013 на такое определение:template&lt;&gt; struct char_traits&lt;char&gt;Вроде как похоже на...

Что означает шаблон без параметров? - C++
Например тут http://www.cyberforum.ru/cpp-beginners/thread1914317.html#post10082610 увидел запись где аргументы шаблона пустые...

Изменение параметров конструктора без аргументов - C++
Как в конструкторе без параметров изменить значения из функции main?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
27.04.2013, 19:25     Использование функции get() без параметров #2
Цитата Сообщение от Познающая Посмотреть сообщение
По-моему он должен быть таким
Почему?
Цитата Сообщение от Познающая Посмотреть сообщение
Объясните, пожалуйста.
get возвращает управление после нажатия Enter. Так что сначала вводите строчку, а потом начинается её посимвольное считывание
Познающая
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 25
27.04.2013, 19:54  [ТС]     Использование функции get() без параметров #3
Да, что-то я вообще не понимаю смысл работы этой функции, можете пояснить поподробнее как работает эта функция?
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
27.04.2013, 20:47     Использование функции get() без параметров #4
get обращается к буферу - символов нет, поэтому предлагается ввести символ/строку.
Ввели Вы строчку "Hello" и нажали Enter(в буфер ввода еще записался символ конца строки '\n')
get считывает первый символ из буфера(H), удаляет его из буфера и результат записывается в переменную ch.
Затем значение ch выводится на консоль.
Теперь в буфере осталась строка "ello\n".
Теперь get снова считывает первый символ(e) и проделываются все те же операции. Остается в буфере"llo\n".
И так по всем символам. Когда буфер станет пуст, потребуется снова ввести символ/строку.
Как-то так.
Yandex
Объявления
27.04.2013, 20:47     Использование функции get() без параметров
Ответ Создать тему
Опции темы

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