Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 6

Удалить в текстовом файле символы-разделители в конце строк

24.12.2018, 02:54. Показов 3346. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи у хороших знатаков библиотеки cstdio, C++.
Вроде бы задача не сложная, но никак не могу правильно написать.
Напишите пожалуйста код программы, буду очень благодарен таким
добрым людям.

Задание:
Создайте программу, которая будет удалять в текстовом файле символы-разделители
(Пробел, символ табуляции) в конце срок. Для работы с файлами используйте функции
cstdio.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2018, 02:54
Ответы с готовыми решениями:

Удалить в текстовом документе пробелы и символы табуляции в конце строк
Здравствуйте, ребята. Мне нужна на завтра написать программу, а иначе будут проблемы в университете. Будет очень обидно если из-за одной...

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

В текстовом файле удалить заданные символы
Есть файл тхт. Нужно удалить в нем определенные символы. Вопрос - как это сделать средствами потоков?

6
 Аватар для alkl
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
24.12.2018, 03:01
Цитата Сообщение от SpectreKris Посмотреть сообщение
но никак не могу правильно написать
А что конкретно не получается ?
Вот хорошее описание cstdio - http://cppstudio.com/cat/309/323/ всё по-русски, всё понятно...
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
24.12.2018, 09:22
Цитата Сообщение от SpectreKris Посмотреть сообщение
Вроде бы задача не сложная, но никак не могу правильно написать.
Покажите попытки.
0
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 6
24.12.2018, 13:43  [ТС]
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
#include "pch.h"
#include <iostream>
#include <locale>
#include <string>
using namespace std;
 
string ReplaceAll(string(str), const string& from, const string& to) {
    size_t start_pos = 0;
    cout << "abs" << endl;
    while ((start_pos = string(str).find(from, start_pos)) != string::npos) {
        cout << "kgfdhfhdg";
        string(str).replace(start_pos, from.length(), to);
        start_pos += to.length();
    }
    return string(str);
}
 
int main() {
    setlocale(LC_ALL, "Russian");
    FILE * in;
    in = fopen("file.txt", "a+");
    if (in != NULL) {
        cout << "Файл открыт";
        char str[1024];
        while (fgets(str, 1024, in)) {
            ReplaceAll(string(str), string (" "), string (""));
            ReplaceAll(string(str), string("\n"), string(""));
            fputs(str, in);
        }
        return 0;
    }
    else cout << "Ошибка открытия файла";
    return 1;
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
24.12.2018, 15:11
Цитата Сообщение от SpectreKris Посмотреть сообщение
string(str)
А это сработает? Не уверен что можно так просто привести обычную строку к плюсовой, да еще с обратным преобразованием.
Собственно, алгоритм может быть гораздо проще: считываете по одному символу, и если он непробельный ( ! isspace() ) то записываете в выходной файл, если пробельный - то игнорируете. Разумеется, одновременно читать и писать в один файл - плохая идея.
0
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 6
24.12.2018, 18:42  [ТС]
Напиши, пожалуйста какие функции для этого мне нужно использовать, потому что интернет выдает функции из fstream, а мне надо из cstdio

Добавлено через 19 минут
Вот сделал по твоим рекомендациям. Все прекрасно работает, спасибо тебе большое. Единственное что в результате я поставил удаление пробелов и переносов строки и во втором файле с конце всего пишет "я"))
file1:aaa bbb ccc
ddd eee fff
file2:aaabbbcccdddeeefffя
Знаешь в чем причина?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main() {
    setlocale(LC_ALL, "Russian");
    FILE * in;
    in = fopen("file1.txt", "r");
    FILE * out;
    out = fopen("file2.txt", "w");
    if (in != NULL && out != NULL) {
        cout << "Файлы открыты";
        int c;
        do {
            c = fgetc(in);
            if (c != 32 && c!=10)
                fputc(c, out);
        } while (c != EOF);
        return 0;
    }
    else cout << "Ошибка открытия файла";
    //cout << ReplaceAll(str, string("a"), string("b")) << endl;
    return 1;
}
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
24.12.2018, 21:40
0. Используйте теги форматирования кода
1. Вы не закрываете файлы.
2. Вместо прямой проверки кодов символов используйте функцию isspace() из <ctype.h>
3. Используйте форматирование кода.
4. Вы сначала записываете конец файла (EOF) в выходной файл, и только потом проверяете. Надо как-то так:
C
1
2
3
while( (c=fgetc(in)) != EOF ){
...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2018, 21:40
Помогаю со студенческими работами здесь

Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt
например имеется текстовый файл 1.txt c таким содержанием 111 222 333 444 555 и имеется текстовый файл 2.txt c таким...

Программа для поиска соответствие строк, учитывая регистр, в текстовом файле с 10000+ строк
Уважаемые форумчане, прошу у вас помощи я неделю в поисках. Мне нужна программа или код для поиска слов, очень похожую на расширение Pearls...

Одинаковые символы в начале и в конце строк файла
Нужна помощь по программе. Надо посчитать количество строк где первый символ совпадает с последним. Уже спрашивал на форуме. СТРИНГОМ НЕ...

Одинаковые символы в начале и в конце строк файла
Нужна помощь по программе. Надо посчитать количество строк где первый символ совпадает с последним. Так же не понятно к чему и как...

В заданном текстовом файле превратить символы табуляции на пробелы
В заданном текстовом файле превратить символы табуляции на пробелы . Для работы использовать библиотеку cstdio


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru