С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 17
1

Работа с текстовыми файлами

18.05.2016, 18:56. Показов 442. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно составить программу которая работает с входным и выходным текстовым файлом. То есть, при запуске вводишь имя входного и выходного файла , программа ищет во входном файле определенный символ заданный пользователем и ту строку текста, где находится этот символ, переносит в конец текстового файла заданное число раз, а весь результат сохраняется в выходном txt файле. Буду очень благодарен тем, кто хоть как-то поможет!

Есть пример работы похожей программы, но она вместо переноса строк, удаляет символ с начала каждой строки.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
#include <fstream>
#include <string>
#include <iostream>
#include <iomanip>
#include <io.h>
#include <stdlib.h>
 
using namespace std;
 
ifstream input;
ofstream output;
char c;
 
void readln()
{
    char c;
    do
        c = getchar();
    while (c != '\n');
}
 
bool file_exists(string name)
{
    return _access(name.c_str(), 0) != -1;
}
 
void open_files(string in, string out)
{
    if (!file_exists(in))
    {
        cout << "Входной файл не существует!" << endl;
        system("pause");
        exit(1);
    }
    input.open(in.c_str());
    output.open(out.c_str());
}
 
void open_files()
{
    string in, out;
    cout << "Входной файл: ";
    cin >> in;
    readln();
    cout << "Выходной файл: ";
    cin >> out;
    readln();
    open_files(in, out);
}
 
void open_files(string in)
{
    string out;
    cout << "Выходной файл: ";
    cin >> out;
    readln();
    open_files(in, out);
}
 
void close_files()
{
    input.close();
    output.close();
}
 
void read_data(char *c, int *count)
{
    cout << "Введите символ- ";
    *c = getchar();
    readln();
    
    cout << "Максимальное количество удаляемых символов: ";
    cin >> *count;
    readln();
}
 
void read_data(int *count)
{
    cout << "Максимальное количество удаляемых символов: ";
    cin >> *count;
    readln();
}
 
 
void all_lines(int *all)
{
    (*all)++;
    if (*(all) == 24)
    {
        readln();
        (*all) = 0;
    }
}
 
void do_work(char c, int count)
{
    int page = 1, line = 1, all = 0;
    string s;
    cout << setw(20) << "Page 1" << endl;
    while (getline(input, s))
    {
        cout << "Считали строку номер " << line << ": " << endl;
        all_lines(&all);
        for (unsigned int i = 0; i < 80; i++)
            if (s[i] != (char)0)
                cout << s[i];
            else break;
        cout << endl;
        all_lines(&all);
        line = line++;
        if (line % 30 == 1)
        {
            cout << setw(20) << "Page " << ++page << endl;
 
            all_lines(&all);
        }
        bool flag = false;
        int d = 0;
        for (unsigned int i = 0; i < s.length(); i++)
        {
            if (flag)
            {
                cout << "Исключающий символ встретился ранее, выводим " << s[i] << endl;
                output << s[i];
                all_lines(&all);
            }
            else
            {
                if (d >= count)
                {
                    cout << "Превышен лимит игнорируемых символов, выводим " << s[i] << endl;
                    all_lines(&all);
                    output << s[i];
                }
                else
                {
                    cout << "Игнорируем символ " << s[i] << endl;
                    all_lines(&all);
                    d++;
                }
                if (s[i] == c)
                {
                    cout << "Встретили исключающий символ!" << endl;
                    all_lines(&all);
                    flag = true;
                }
            }
            //cout << endl;
        }
        output << endl;
        
    }
}
 
void handle_args(int NArg, char *arg[], char *c, int *count)
{
    if (NArg == 1)
    {
        open_files();
        read_data(c, count);
    }
    else if (NArg == 2)
    {
        string in = (const char *)arg[0];
        open_files(in);
        read_data(c, count);
    }
    else if (NArg == 3)
    {
        string in = (const char *)arg[0];
        string out = (const char *)arg[1];
        open_files(in, out);
        read_data(c, count);
    }
    else if (NArg == 4)
    {
        string in = (const char *)arg[0];
        string out = (const char *)arg[1];
        open_files(in, out);
        *c = arg[2][0];
        read_data(count);
    }
    else
    {
        string in = (const char *)arg[0];
        string out = (const char *)arg[1];
        open_files(in, out);
        *c = arg[2][0];
        try
        {
            *count = atoi(arg[3]);
        }
        catch (exception)
        {
            cout << "Неверный числовой параметр!" << endl;
            read_data(count);
        }
    }
}
 
int main(int NArg, char *arg[])
{
    int count = 0;
    setlocale(LC_ALL, "Russian");
    handle_args(NArg, arg, &c, &count);
    do_work(c, count);
    close_files();
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2016, 18:56
Ответы с готовыми решениями:

Работа с текстовыми файлами
Здравствуйте, уважаемые !!! Появились проблемы во время решения задачи. Никак не могу решить...

Работа с текстовыми файлами
Задача: написать программу, которая считывает слова из текстового файла. Слова разделены символом...

Работа с текстовыми файлами
Есть текстовый файл в котором существует последовательность чисел. Нужно создать текстовый файл...

Работа с текстовыми файлами
Я пишу свой календарь,и у меня задание считать из текстового файла .txt информацию.В текстовом...

0
18.05.2016, 18:56
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2016, 18:56
Помогаю со студенческими работами здесь

Работа с текстовыми файлами
Доброй ночи. Будте добры, помогите сделать задачу с файлами. Теоретически понимаю что нужно делать,...

Работа с текстовыми файлами
Здравствуйте. Имеется задание: &quot;В тексте с символами пунктуации выделить все слова, указав, сколько...

Работа с текстовыми файлами
Дай текстовы файл F. Группы символов, розделены пропусками (одним или нескольками) или вообще их не...

Работа с текстовыми файлами
Люди добрые кто может подскажите)) Задание: Дан текстовый файл, проставить пробелы после знаков...

Работа с текстовыми файлами.
Найти самое длинное симметричное слово заданного(придуманного) предложения, например АККА.

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru