Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 25
1

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

27.04.2013, 19:11. Просмотров 765. Ответов 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!

Объясните, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 19:11
Ответы с готовыми решениями:

Использование указателей для передачи параметров функции
Ели мы объявляем формальный параметр как указатель,тогда ведь нам при вызове этой функций следует...

Использование массива и его параметров из одной функции в другой
В одной функции был создан массив, присвоены значения. Затем некоторые элементы массива я попытался...

Правильное использование указателей на процедуры без параметров
с указателем на вложенные процедуры переменные главной процедуры читаются не верно! Как заставить...

Обработать одномерный массив с использование процедур и функций без параметров и с параметрами
Обработать одномерный массив с использование процедур и функций без параметров и с...

3
Грамотный. Безпорно.
16622 / 9662 / 1863
Регистрация: 27.09.2012
Сообщений: 23,968
Записей в блоге: 2
27.04.2013, 19:25 2
Цитата Сообщение от Познающая Посмотреть сообщение
По-моему он должен быть таким
Почему?
Цитата Сообщение от Познающая Посмотреть сообщение
Объясните, пожалуйста.
get возвращает управление после нажатия Enter. Так что сначала вводите строчку, а потом начинается её посимвольное считывание
1
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 25
27.04.2013, 19:54  [ТС] 3
Да, что-то я вообще не понимаю смысл работы этой функции, можете пояснить поподробнее как работает эта функция?
0
Грамотный. Безпорно.
16622 / 9662 / 1863
Регистрация: 27.09.2012
Сообщений: 23,968
Записей в блоге: 2
27.04.2013, 20:47 4
get обращается к буферу - символов нет, поэтому предлагается ввести символ/строку.
Ввели Вы строчку "Hello" и нажали Enter(в буфер ввода еще записался символ конца строки '\n')
get считывает первый символ из буфера(H), удаляет его из буфера и результат записывается в переменную ch.
Затем значение ch выводится на консоль.
Теперь в буфере осталась строка "ello\n".
Теперь get снова считывает первый символ(e) и проделываются все те же операции. Остается в буфере"llo\n".
И так по всем символам. Когда буфер станет пуст, потребуется снова ввести символ/строку.
Как-то так.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 20:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обработать одномерный массив с использование процедур и функций без параметров и с параметрами
После первого элемента вставить 0 Обработать одномерный массив с использование процедур и функций...

Использование делегатов в качестве параметров функции
Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и...

Использование функции с разным набором параметров
Всем привет, делал сегодня рассылку через смс шлюз по API https://smsc.ru/api/delphi/ и увидел...

Использование делегатов в качестве параметров функции
Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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