Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 5
1

Подсчет колличества слов разделенных пробелом и пробелов в файле

19.06.2013, 17:17. Просмотров 595. Ответов 6
Метки нет (Все метки)


Здраствуйте. Нужно сделать подсчет колличества слов разделенных пробелом, а также количество пробелов в открываемом бинарно файле. Проблема в том что когда пишешь с новой строки, то слова считаются, а пробелы нет. Помогите пожалуйсто это исправить.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <string>
#include <fstream>
#include <iostream>
#include <algorithm> //counter
using namespace std;
 
int main()
{
    ifstream ifs("text.txt", fstream::binary); 
    if(!ifs) 
    { 
        cout << "No such file." << endl;
        system("pause");
        return 1;
    }
    string word;
    int word_counter = 0;
    while (ifs >> word) 
    {
        word_counter++; 
    }
    ifs.clear();
    ifs.seekg(0, ios::beg);
    int space_counter;
    while (getline(ifs, word))
    {
        space_counter = count(word.begin(), word.end(), ' ');
    }
    cout << "Number of words is " << word_counter << "." << endl
    << "Number of spaces is " << space_counter << "." << endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2013, 17:17
Ответы с готовыми решениями:

Во входном файле записана символьная строка из двух слов, разделенных или одним пробелом, или несколькими
Привет, нужна помощь по Lisp Во входном файле записана символьная строка из двух слов, разделенных...

Дана строка, состоящая из слов, разделенных пробелом. Вывести строку, состоящую из этих же слов, расположенных в алфавитном порядке
Дана строка, состоящая из слов, разделенных пробелом. Вывести строку, состоящую из этих же слов,...

Дана последовательность слов разделенных пробелом.
помогите с задачей пожалуйста.. :-/ Дана последовательность слов разделенных пробелом. За...

Набор слов, разделенных одним пробелом
Добрый вечер. Прошу помочь решить задачу в Python 3. На вход подается набор слов, записанных черед...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
6
5479 / 4874 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.06.2013, 17:24 2
Цитата Сообщение от maksimum2013 Посмотреть сообщение
Проблема в том что когда пишешь с новой строки,
Это как? Где, что пишешь?
0
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 5
19.06.2013, 17:27  [ТС] 3
Когда в тестовом файле несколько строк делаешь, например:
Deadlift
Barbell full squat
Barbell bench press
0
5479 / 4874 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.06.2013, 17:32 4
Если так:
C++
1
space_counter += count(word.begin(), word.end(), ' ');
Добавлено через 3 минуты
И ещё:
C++
1
int space_counter = 0;
1
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
19.06.2013, 17:46 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <string>
#include <cstddef>
 
std::size_t countWords(const std::string &str)
{
    std::size_t counter = 0;
    std::istringstream ist(str);
    for (std::string word; ist >> word; counter++);
 
    return counter;
}
 
std::size_t countSpaces(const std::string &str)
{
    return std::count(str.begin(), str.end(), ' ');
}
 
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs)
        return 1;
    std::size_t wordsCounter = 0, spacesCounter = 0;
 
    for (std::string str; std::getline(ifs, str);
        wordsCounter += countWords(str), spacesCounter += countSpaces(str));
 
    std::cout << "Words: "    << wordsCounter
              << "\nSpaces: " << spacesCounter << std::endl;
}
1
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 5
19.06.2013, 17:54  [ТС] 6
alsav22, спасибо) Надеюсь теперь сдам.

MrGluck, это для меня слишком сложно)
0
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
19.06.2013, 17:57 7
maksimum2013, в чем стоит принципиальная сложность? Вынесение вычислений в отдельные функции?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2013, 17:57

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

В заданном тексте из разделенных пробелом слов найти 1-ое слово
В заданном тексте из разделенных пробелом слов найти 1-ое слово, начинающиеся на буквосочетание...

В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово
Нужно написать программу Задание: В строке, содержащей несколько слов, разделенных пробелом,...

В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово
В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово. Входные...

В произвольном предложении состоящих из слов, разделенных пробелом, «перевернуть» эти слова
Задание на массивы, срочно нужна программа на Java пожалуйста помогите.

Сформировать текстовый файл, состоящий из 5 строк. В строке 5 слов, разделенных пробелом
Сформировать с помощью редактора текстовый файл, состоящий из 5 строк. В строке 5 слов, разделенных...

В строке, содержащей несколько слов, разделенных пробелом, переставить слова в обратной последовательности
Задание 1 В строке, содержащей несколько слов, разделенных пробелом, переставить слова в обратной...


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

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

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