Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
1

Как работает метод get и putback (Подсчитать количество символов ввода вплоть до значения '$')

07.07.2014, 12:00. Показов 5335. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание простое: подсчитать количество символов ввода вплоть до значения '$', и оставить '$' во входном потоке.

Вот готовое решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main(void)
{
    using namespace std;
 
    char ch;
    int count = 0;
 
    while (cin.get(ch) && ch != '$')
        count++;
    if (ch == '$')
        cin.putback(ch);
   
    cout << count << " characters read\n";
    
    cout << "Then next input character is " << (char)cin.get() << endl;
    system("pause");
    return 0;
}
Как я понимаю, get() извлекает из потока символ, который мы вводим с клавиатуры, и присваивает его значению ch.
Но вот строка с if не очень понятна: если ch равен '$', то мы с помощью функции putback удаляем '\n' из потока и последним остается '$'. Но возникает вопрос: последним символом является как раз перевод строки! Почему тогда ch == '$'.

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

В последовательности символов, вводимых с клавиатуры, подсчитать количество пар символов *. Признак завершения ввода:+
Решите плиз. В последовательности символов, вводимых с клавиатуры, подсчитать количество пар...

Подсчитать количество пар символов '*'. Признак завершения ввода: третий символ '+'
Вот задание: В последовательности символов, вводимых с клавиатуры, подсчитать количество пар...

Как подсчитать количество символов в файле???
Как подсчитать количество символов в файле, а потом вывести на экран определенное количество...

Как подсчитать количество выведенных символов?
Программа выводит числа. Как подсчитать их количество?

3
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
07.07.2014, 12:04 2
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
с помощью функции putback удаляем '\n' из потока
С чего Вы это решили.
Метод putback - загоняет символ '$' обратно в поток,
т.е. при последующем get он снова прочитается.
1
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
07.07.2014, 13:42  [ТС] 3
zss, значит putback загоняет последний извлеченный символ в поток, следовательно get просто извлекает символ из потока, и в этом самом потоке его удаляет? я правильно понимаю?
ничего не понимаю честно говоря
каким образом тогда заполняется поток?

то есть если я ввожу abcd$'/n' в буфер, и cin.get по отдельности извлекает каждый символ кроме последнего, и потом обратно загоняю в буфер с помощью putback ?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
07.07.2014, 18:45 4
Последний извлеченный символ у Вас $.
Потом Вы его загоняете обратно, и в потоке остаются непрочитанными
$ и '\n'.
0
07.07.2014, 18:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2014, 18:45
Помогаю со студенческими работами здесь

Как подсчитать количество измененных символов?
Условие задачи такое: заменить все большие буквы на маленькие и подсчитать количество замен. Каким...

Как подсчитать количество символов в строке
Дана текстовая строка. Группы символов, разделенные пробелами (одним или несколькими) и не...

Как подсчитать введенное количество символов в edittext?
Как подсчитать введенное количество символов в edittext?(android)

Как подсчитать количество определенных символов в строке?
Итак: есть файл с длинной строкой содержащей подряд множество символов. Задача подсчитать их общее...

Как подсчитать количество одинаковых символов в строке?
Вот сама задача: Написать программу, которая проверяет, сколько каждый символ встречается во...

Как подсчитать количество кириллических символов в строке?
У меня не получается правильно подсчитать количество кириллических символов. У меня почему то идет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru