0 / 0 / 0
Регистрация: 27.07.2016
Сообщений: 6
1

Использование потока cin для ввода символов

05.08.2016, 16:27. Показов 2242. Ответов 2
Метки нет (Все метки)

Вот первая функция,
C++
1
cin.get(ch)
которую я не понимаю
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    char ch;
    cin.get(ch);
    while (ch != '\n')
    {
        cout << ch;
        cin.get(ch);
    }
    return 0;
}
перед циклом никаких cin >> и других функция для ввода кроме cin.get нет, т.е. это она позволяет ввести что-нибудь с клавиатуры? ну хорошо я введу пару слов, которые сохранятся в буффере: Mary Jane
начнется цикл и во время цикла она уже получается не просит ввода, а только считывает это как так вообще!
и та же самая программа только вместо get(ch) cin >>
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    char ch;
    cin >> ch;
    while (ch != '\n')
    {
        cout << ch;
        cin >> ch;
    }
    return 0;
}
Вот здесь оператор
C++
1
cin >> ch;
также введу Mary Jane, cin прочитает слово Mary дойдет до символа пробела и поместит первый не пробельный символ 'M' в переменную ch, а остальные оставит в буфере ввода? затем сравнит 'M' с символом конца строки
C++
1
while(ch!='\n')
, выведет его на экран
C++
1
cout << ch
и, в отличие от get(ch) я снова могу вводить слова сколько угодно раз, т.е. та прекращает запрашивать ввод в том цикле, а cin>> нет?
и еще когда cin дойдет до буквы y в слове Mary, которая стоит прямо перед пробелом, он не только сохранит ее в переменной ch, но еще и пробел из буффера выкинет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2016, 16:27
Ответы с готовыми решениями:

Cin перестал читать из потока ввода
Возникла проблема при чтении из потока. Может кто знает, как решить эту проблему с cin? ...

Обработка ошибок ввода из потока cin
Доброго времени суток всем! Помогите пожалуйста разобраться. После ввода буквы например, то есть...

Работа с cin при считывании с потока ввода
есть кусочек кода while (1) { string buf = name; cout &lt;&lt; &quot;Message : &quot;; string...

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

2
7363 / 6285 / 2857
Регистрация: 14.04.2014
Сообщений: 27,237
05.08.2016, 17:25 2
Ты документацию читал? У тебя посимвольное чтение, только >> игнорирует пробельные символы, а get() нет.
1
Модератор
Эксперт С++
12780 / 10236 / 6150
Регистрация: 18.12.2011
Сообщений: 27,405
05.08.2016, 17:30 3
И еще, не забывайте, что потоковый ввод буферизован.
Т,е. пока Вы не ввели Enter символы просто поступают в буфер ввода
(их даже можно редактировать).
И только после ввода Enter символы поступают на обработку.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2016, 17:30
Помогаю со студенческими работами здесь

Что надо в default для возврата ввода cin >> result?
#include &lt;iostream&gt; using namespace std; int main() { setlocale(0,&quot;Russian&quot;); ...

Использование cin.get вместо cin
Есть задача: нужно рассчитать среднее значение входных суммирующихся чисел. Я его решил таким...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout
Расчитать значения переменных y и z по заданным формулам . Для ввода/вывод использовать объекты ...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout
Расчитать значения переменных y и z по заданным формулам (табл. 1). Для ввода/вывода использовать...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru