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

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

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

Игнорирование пробелов при чтении символов из входного потока - C++

29.03.2014, 17:44. Просмотров 580. Ответов 3
Метки нет (Все метки)

Задача: нужно найти количество слов в тексте.

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    ifstream fin;
    fin.open("text.txt");
    int count = 0;
    char ch;
 
    while(!fin.eof())
    {
        fin >> ch;
        if (ch == ' ') count++;
    }
 
    cout << "count: " << count << endl;
    cout << "ch: " << ch << endl;
    getch();
}


Почему не считаются пробелы в тексте? Если, например, запишу в if 'a' вместо ' ', то показывает все правильно. Объясните пожалуйста.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 17:44     Игнорирование пробелов при чтении символов из входного потока
Посмотрите здесь:
Вывести все слова входного потока, заканчивающиеся заданной последовательностью символов C++
Игнорирование пробелов при считывание C++
C++ Ошибка при чтении символов строки
C++ Ошибка при чтении символов строки
Ошибка при чтении символов строки C++
Ошибка при чтении символов строки C++
Ошибка при чтении символов строки C++
Бинарный файл, ошибка при чтении символов C++
C++ Ошибка при чтении символов строки, работа с классом
Как обнулять Ch при каждом новом чтении символов из строки? C++
C++ Слова входного потока
C++ Работа стандартного входного потока

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
29.03.2014, 17:50     Игнорирование пробелов при чтении символов из входного потока #2
Попробуй не
C++
1
fin >> ch;
а
C++
1
ch = fin.get();
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.03.2014, 17:52  [ТС]     Игнорирование пробелов при чтении символов из входного потока #3
Спасибо, а можно узнать почему так?
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
29.03.2014, 17:55     Игнорирование пробелов при чтении символов из входного потока #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Или так
C++
1
fin >> std::noskipws >> ch;
По определению пробел считается символом разделителем. Обьект потока обычно имеет режим skipws (skip whitespace) и пропускает их.
Yandex
Объявления
29.03.2014, 17:55     Игнорирование пробелов при чтении символов из входного потока
Ответ Создать тему
Опции темы

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