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

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

Восстановить пароль Регистрация
 
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
29.03.2014, 17:44     Игнорирование пробелов при чтении символов из входного потока #1
Задача: нужно найти количество слов в тексте.

Кликните здесь для просмотра всего текста
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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для 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     Игнорирование пробелов при чтении символов из входного потока
Ответ Создать тему
Опции темы

Текущее время: 08:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru