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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как правильно подключить lib http://www.cyberforum.ru/cpp-beginners/thread1223737.html
Добрый день. Пишу консольную программу на C++ (без использования Qt) с помощью редактора Qt Creator. Она работает, но в Qt уж очень хочется понять, как правильно подключить библиотеки через файл *.pro Если подключать так, то все работает: #pragma comment(lib,"opengl32.lib") #pragma comment(lib,"glu32.lib") #pragma comment(lib,"glut32.lib") Но при удалении #pragma... и добавлении в...
C++ Переделать программу под ввод данных из файла Помогите пожалуйста реализовать чтение из файла. Вот эти вот точки они считываются с клавиатуры, а нужно из файла.. #include <stdio.h> #include <math.h> #include <string.h> #define N 1001 #define PI 3.14159265 typedef struct point{ http://www.cyberforum.ru/cpp-beginners/thread1223720.html
If или switch().case. Что быстрее C++
Есть два кода. Первый: if(a == 2) a += 2; if(a == 3) a+= 3; if(a == 4) a+=4; Второй:
C++ Переписать файл так, чтобы чередовались знаки компонент файла.
Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы в файле G не было двух соседних компонент с одним знаком.
C++ Странная перегрузка операторов (Error: ambiguous overload for 'operator[]') http://www.cyberforum.ru/cpp-beginners/thread1223655.html
Что-то я туплю. Есть код: #include<string> struct test { int operator(const std::string&)const{return 0;} operator int()const{return 0;} }; int main() { test t;
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. То, что я написал: #include <vector> #include <iostream> #include <iomanip> using namespace std; подробнее

Показать сообщение отдельно
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1

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

07.07.2014, 12:00. Просмотров 742. Ответов 3
Метки (Все метки)

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

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

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 == '$'.

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