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

Открытие и чтение файла, запись в файл, помещение результата в файл

04.06.2019, 16:17. Показов 5525. Ответов 20

Студворк — интернет-сервис помощи студентам
Eсть алгоритм решения задачи. Не знаю только каким способом открыть файлы и как в них что-либо записывать (для файлов f1 и f2) и помещать результат (для файла g). Обычными методами не получается. Либо я что-то делаю не так. Вот сама задача:

Даны два символьных файла f1 и f2. В f1 - произвольный текст, слова в котором разделены пробелами и знаками препинания. В f2 - не более 40 слов, которые разделены запятыми. Эти слова образуют пару: первое слово считается заменяемым, а второе – заменяющим. Нужно найти в f1 все заменяемые слова и заменить их на заменяющие. Результат поместить в файл g.

Если для открытия, чтения, записи и всего подобного требуется изменить алгоритм решения, то смело меняйте, это не принципиально.

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
#include <map>
 
using namespace System;
using namespace std;
 
int main()
{
    setlocale(0, "");
    typedef map<string, string> DictArr; //Для удобства 
    //Получение слов из файла F2
    DictArr slovar;
    while (!f2->eof())
    {
        string src_word;
        string sub_word;
        getline(*f2, src_word, ',');//Получаем заменяемое слово
        getline(*f2, sub_word, ',');//Получаем заменитель
        slovar[src_word] = sub_word;//Вносим заменяемое слово(ключ) и заменитель(значение) в ассоциативный массив(словарь)
    }
    //Разбор строки
    string dannyefposleobr;//Содержание файла после обработки
    string tekslovo;//Текущее слово
    //Считываем файл с текстом
    cout << "Parsing data from file F1 ";
    while (!f1->eof())
    {
        char raz;//Разделитель
        f1->get(raz);//Считываем символ
        //Проверяем "А знак ли это препинания?"
        if (raz == ' ' || raz == ',' || raz == '.' || raz == ':' || raz == '!' || raz == '?' || raz == '!' || raz == ';' || raz == '-')
        {
            DictArr::iterator iter = slovar.find(tekslovo);/*Если мы получили знак препинания, 
            то слово считано и можно начать его поиск в словаре*/
            if (iter == slovar.end())//Если слово не нашли, то копируем как есть и прибавляем разделитель
            {
                dannyefposleobr += tekslovo + raz;
            }
            else
            {
                dannyefposleobr += slovar[tekslovo] + raz;/*Если нашли, 
                тогда заменим слово ее значением из словаря и прибавим разделитель*/
            }
            tekslovo.clear();//Слово внесено в dannyefposleobr, следовательно на данный момент слов в буффере нет - чистим переменную
        }
        //Если считанный символ не разделитель, значит это часть слова - помещаем символ в tekslovo
        else
        {
            tekslovo += raz;
        }
    }
    cout << "Done\n";
    return dannyefposleobr;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2019, 16:17
Ответы с готовыми решениями:

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

Создание/открытие файлов, чтение из файла и запись в файл через наследование
Имеется следующая иерархия классов: Файл, Типизированный файл, Текстовый файл Методы: Создать/Открыть файл, Чение из файла, Запись в...

Чтение из файла и запись в файл
всем привет! нужно написать программу, которая читает строку из файла. если слово содержит &quot;*&quot;, то его удалить, &quot;+&quot; -...

20
0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 142
04.06.2019, 20:33  [ТС]
Студворк — интернет-сервис помощи студентам
zayats80888, ааа, неправильно Вас понял. Всё, спасибо большое, надеюсь больше не задам вопросов)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2019, 20:33

Запись в файл и чтение из файла
Всем привет. Кто может подсказать решение? Есть полученный заполненный массив. int A. Числа в нём от 0 до 17. Как его записать в файл...

Чтение из файла и запись в файл
Доброго времени суток. Идея в чем: Пример входных данных из файла: 5 o 3 c 4 o 5 c 6 o 7

Чтение из файла, запись в файл
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки,...

Запись в файл, чтение из файла
В общем, неделю назад мне помогли на этом форуме сделать программу. И все прекрасно работает на visual studio, но в универе у нас везде...

Чтение из файла и запись в файл
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: ...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru