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

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

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

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

27.04.2013, 19:11. Просмотров 330. Ответов 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++
C++ Использование команды system(); Без всяких окон (без dos и т.д)
C++ Изменение параметров конструктора без аргументов
C++ Функция без параметров?
C++ С++ Использование функций как параметров процедур
C++ Конструктор без параметров
C++ Конструкторы с и без параметров
Шаблоны без параметров, что это? C++
C++ Pthread взывать поток без параметров
C++ Конструктор без параметров: не выводится строка в приведенном коде
Использование функций в качестве формальных параметров C++
Использование значений, заданных по умолчанию для параметров функций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12510 / 7072 / 794
Регистрация: 27.09.2012
Сообщений: 17,465
Записей в блоге: 2
Завершенные тесты: 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Эксперт С++
 Аватар для Croessmah
12510 / 7072 / 794
Регистрация: 27.09.2012
Сообщений: 17,465
Записей в блоге: 2
Завершенные тесты: 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() без параметров
Ответ Создать тему
Опции темы

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