Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
#1

Обработчик текстовых файлов - C++

12.10.2014, 16:19. Просмотров 493. Ответов 6
Метки нет (Все метки)

Добрый день,прошу помощи в этом нелегком(для меня ) задании !
Написать программу-обработчик текстовых файлов, создающую текстовый файл, в который записываются только слова файла-источника, состоящие из символов равного значению введенного пользователем. Исходный текст построчно вводится пользователем с клавиатуры. Признаком завершения ввода текста является ввод пустой строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2014, 16:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработчик текстовых файлов (C++):

Копирование текстовых файлов
Столкнулся с такой проблемой : при копировании из одного файла в другой мне...

Конкатенация текстовых файлов
Доброго времени суток. Нужно объединить заданное количество текстовых файлов....

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

Подключение текстовых файлов
Привет. Прошу прощения, если подобная тема уже есть, но я ее не нашел Как...

Перекодировка текстовых файлов
Всем привет. По курсовому проекту возник вопрос. Я попытался сначала...

Конкатенация текстовых файлов
Подскажите примерно как действовать. Нужно соединить данные(строки)из 2ух...

6
DimanRu
679 / 672 / 167
Регистрация: 15.06.2011
Сообщений: 1,699
12.10.2014, 17:41 #2
Цитата Сообщение от HON3Y Посмотреть сообщение
состоящие из символов равного значению введенного пользователем
Не совсем понял, что это значит.

То есть, вы пишите путь, программа создает по этому пути файл, и предлагает вам написать текст построчно. Вы пишите, как только пишите пустую строку - программа сохраняет все вами написанное в файл. Так ,или еще что-то нужно?
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
12.10.2014, 18:01  [ТС] #3
Нужно записать в файл только те слова,у которых кол-во букв равно кол-ву заданым пользователем.Если пользователь ввел 7,то нужно записать слово из 7 букв
0
DimanRu
679 / 672 / 167
Регистрация: 15.06.2011
Сообщений: 1,699
12.10.2014, 19:06 #4
То есть, я ввожу путь сохранения файла, потом число букв, и текст. И все слова, в которых число букв совпадет с заданным записываются в файл, другие пропускаются?
0
HON3Y
0 / 0 / 1
Регистрация: 12.01.2014
Сообщений: 48
12.10.2014, 19:37  [ТС] #5
да,все верно.

Добавлено через 2 минуты
ну вводить путь сохранения файла необязательно,в папке с проектом достаточно сохранить
0
DimanRu
679 / 672 / 167
Регистрация: 15.06.2011
Сообщений: 1,699
13.10.2014, 19:25 #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
34
35
36
37
38
39
40
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    ofstream F;
    cout << "Введите путь к файлу: ";
    char path[256];
    cin >> path;
    cin.sync();
 
    cout << "Введите ограничение по символам: ";
    int k;
    cin >> k;
    cin.sync();
 
    F.open(path);
    if (F)
    {
        cout << "Введите текст построчно..." << endl;
        string str;
        do
        {       
            scanf("%[a-zA-Z .,?!'\n]", str);
            cin.sync();
            //Тут чт-то вообще не думается
            if (str != "") //При вводе пустой строки переменная str не изменяется. Не знаю, как сделать, что бы изменялась.
                F << str;
            else
                break;
        } while (true);
        F.close();
        return 1;
    }
    cout << "Ошибка!";
    cin.sync();
    return 0;
}
Добавлено через 20 часов 38 минут
В C# я бы сделал отсев слов регулярными выражениями. Но как пользоваться ими в C++ я пока не знаю - буду пробовать.

Добавлено через 2 часа 1 минуту
Вот, но прекращает запись при вводе "zero" - как сделать по пустой строке - не допираю. При нажатии Enter из потока ничего не записывается в переменную.
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
37
38
39
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    ofstream F;
    cout << "Введите путь к файлу: ";
    char path[256];
    cin >> path;
    cin.sync();
 
    cout << "Введите ограничение по символам: ";
    int k;
    cin >> k;
    cin.sync();
 
    F.open(path);
    if (F)
    {
        cout << "Введите текст построчно..." << endl;
        string str;
        do
        {
            cin >> str;
            cout << str.length();
            if (str.length() == k)
                F << str << ' ';
        } while (str != "zero");
        F.close();
        return 1;
    }
    cout << "Ошибка!";
    cin.sync();
    return 0;
}
0
igorrr37
1863 / 1481 / 749
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
13.10.2014, 22:15 #7
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
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
 
int main()
{
    size_t len;
    (std::cin >> len).sync();
    std::string str;
    str.reserve(20);
    std::ofstream ofs("out.txt");
    if(ofs.is_open())
    {
        std::istringstream iss;
        for(std::getline(std::cin, str); !str.empty(); std::getline(std::cin, str))
        {
 
            for(iss.str(str); iss >> str; )
            {
                if(str.size() == len)
                    ofs << str << '\n';
            }
            iss.clear();
        }
        ofs.close();
    }
    else
        std::cerr << "Unable to open output file\n";
    return 0;
}
1
13.10.2014, 22:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2014, 22:15
Привет! Вот еще темы с решениями:

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

Обработка текстовых файлов
Я написал программу, которая выводит с файла допустим dfgdfg dfgdfg dfgdfg...

С использованием текстовых файлов
помогите первокурснице..... Файл содержит целые числа. Вычислить сумму...

Соединение 2 текстовых файлов
#include &lt;string.h&gt; int filik (char*j, char*f, char*k) { FILE *F1, *F2,...


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

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

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