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

Текстовые файлы и потоки ввода/вывода - C++

Восстановить пароль Регистрация
 
vasek589
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 6
11.12.2012, 23:05     Текстовые файлы и потоки ввода/вывода #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>
using namespace std;
void main()
{
    char character, predl_t[1000];  
    ifstream in_stream; // создаем поток ввода информации
    ofstream out_stream; // создаем поток вывода информации
    in_stream.open( "input.txt" ); // Открываем документ для считывания
    out_stream.open( "output.txt" ); // Открываем документ для записи
    while ( !in_stream.eof() ) // задаем цикл
    {
        in_stream.getline(predl_t, sizeof(predl_t), '.');
        for(int x=0; x<=strlen(predl_t); x++ )
        {
            тут должен быть код;
        }
        in_stream.get(character);
    }
    out_stream.close(); // закрываем поток вывод
    in_stream.close(); // закрываем поток ввода
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diga
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
11.12.2012, 23:07     Текстовые файлы и потоки ввода/вывода #2
что то подобное встречалось помню, поищи по темам может найдешь
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 23:17     Текстовые файлы и потоки ввода/вывода #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    std::string max = *std::max_element(std::istream_iterator<std::string>(ifs),
        std::istream_iterator<std::string>(), [](const std::string &s1,
            const std::string &s2) { return s1.length() < s2.length(); } );
    ifs.clear();
    ifs.seekg(0);
    std::cout << std::count(std::istream_iterator<std::string>(ifs),
        std::istream_iterator<std::string>(), max) << std::endl;
}
vasek589
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 6
11.12.2012, 23:20  [ТС]     Текстовые файлы и потоки ввода/вывода #4
MrGluck, в вашей программе я не вижу чтоб заносился в другой файл количество слов и какое это слово.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 23:24     Текстовые файлы и потоки ввода/вывода #5
Цитата Сообщение от vasek589 Посмотреть сообщение
MrGluck, в вашей программе я не вижу чтоб заносился в другой файл количество слов и какое это слово.
vasek589, в вашем задании я не вижу, чтобы этого требовалось сделать. Каков вопрос - таков ответ.

Добавлено через 1 минуту
И неужели так сложно поток вывода поменять?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <fstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::ifstream ifs("input.txt");
    std::ofstream o("output.txt");
    if (!ifs) return 1;
    std::string max = *std::max_element(std::istream_iterator<std::string>(ifs),
        std::istream_iterator<std::string>(), [](const std::string &s1,
            const std::string &s2) { return s1.length() < s2.length(); } );
    ifs.clear();
    ifs.seekg(0);
    o << max << " " << std::count(std::istream_iterator<std::string>(ifs),
        std::istream_iterator<std::string>(), max) << std::endl;
}
vasek589
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 6
12.12.2012, 00:22  [ТС]     Текстовые файлы и потоки ввода/вывода #6
MrGluck, не могли бы вы сделать это вот в этом коде, а то я ваш код не много не понимаю.
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>
using namespace std;
void main()
{
    char character, predl_t[1000];  
    ifstream in_stream; // создаем поток ввода информации
    ofstream out_stream; // создаем поток вывода информации
    in_stream.open( "input.txt" ); // Открываем документ для считывания
    out_stream.open( "output.txt" ); // Открываем документ для записи
    while ( !in_stream.eof() ) // задаем цикл
    {
        in_stream.getline(predl_t, sizeof(predl_t), '.');
        for(int x=0; x<=strlen(predl_t); x++ )
        {
            тут должен быть код;
        }
        in_stream.get(character);
    }
    out_stream.close(); // закрываем поток вывод
    in_stream.close(); // закрываем поток ввода
}
Добавлено через 53 минуты
Проблему решил.
Yandex
Объявления
12.12.2012, 00:22     Текстовые файлы и потоки ввода/вывода
Ответ Создать тему
Опции темы

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