0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 142

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

04.06.2019, 16:17. Показов 5568. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru