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

Перенести все цифры в конец каждой строки с сохранением взаимного исходного порядка (файловый ввод/вывод)

16.12.2015, 16:42. Показов 1582. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Содержимое текстового файла INPUT.TXT, разделенного на строки, переписать за один проход по файлу в текстовый файл OUTPUT.TXT, перенося при этом в конец каждой строки все входящие в него цифры с сохранением взаимного исходного порядка.
Пример:
INPUT.TXT
Лдвао1лр43лро26ло78
Выоа234лор980
OUTPUT.TXT
Лдваолрлроло1432678
Выоалор234980

Не работает. Исправьте, пожалуйста, и объясните, если не трудно, что я сделал не так.

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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string.h>
using namespace std;
 
int main()
{
 
setlocale(LC_ALL,"RUSSIAN");
    char *str = new char[200];
    char *cifri = new char[200];
    char *symb = new char[200];
    ifstream fin;//считывание информации из файла
    ofstream fout;//запись информации в файл
 
 
    fin.open("INPUT.txt");
    if (!fin) { cout <<"Ошибка открытия файла!\n"; return -1; }
    cout << "Содержимое файла "INPUT":\n";
       cifri = " ";
       symb = " ";
    while (fin.getline(str,200)) {
      for (int i = 0; i < strlen(str); i++) {
        if ((str[i]> 47) && (str[i] < 58)) {
        cifri += str[i];
        }
        else {
        symb += str[i];
        }
    }
    strcat(symb,cifri);
    cout << str;
    }
    cout << symb;
    fout.open("OUTPUT.txt");
    fout << symb <<endl;
    fout.close();
    fin.close();
 
   system("pause");
 
    delete [] str;
    delete [] cifri;
    delete [] symb;
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2015, 16:42
Ответы с готовыми решениями:

Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец
Здравствуйте! Помогите, пожалуйста, составить программу, которая считывает из текстового файла input.txt строку символов S.Во всех словах...

Перенести все цифры предложения в конец строки
Я сделал такой код, но мне сказали что не правильно, потому что я например пишу asd123asd123asd и получается asdasd123123123 и я теряю...

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

4
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
16.12.2015, 17:18
Цитата Сообщение от Noscope Посмотреть сообщение
cifri = " ";
symb = " ";
Здесь, выделенную под эти указатели память, потерял, теперь они указывают на строковые литералы (память только для чтения).
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 20
16.12.2015, 17:23  [ТС]
Я ничего не понял, но спасибо. Можете как-то исправить мой код?
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
16.12.2015, 17:50
Лучший ответ Сообщение было отмечено Noscope как решение

Решение

Как-то, так:
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string.h>
using namespace std;
 
int main()
{
 
    setlocale(LC_ALL,"RUSSIAN");
    char *str = new char[200];
    char *cifri = new char[200];
    char *symb = new char[200];
    ifstream fin;//считывание информации из файла
    ofstream fout;//запись информации в файл
 
    fout.open("OUTPUT.txt");
    fin.open("INPUT.txt");
    if (!fin) { cout <<"Ошибка открытия файла!\n"; system("pause"); return -1; }
    cout << "Содержимое файла ""INPUT"":\n";
       //cifri = " ";
       //symb = " ";
    while (fin.getline(str,200)) {
        int j = 0, k = 0;
        for (int i = 0; i < strlen(str); i++) {
        if ((str[i]> 47) && (str[i] < 58)) {
        cifri[j++] = str[i];
        }
        else {
        symb[k++] = str[i];
        }
    }
    cifri[j] = '\0';
    symb[k] = '\0';
    strcat(symb,cifri);
    cout << str << endl;
    fout << symb << endl;
    }
    
    fout.close();
    fin.close();
 
   
    delete [] str;
    delete [] cifri;
    delete [] symb;
 
    system("pause");
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 20
16.12.2015, 17:56  [ТС]
Огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2015, 17:56
Помогаю со студенческими работами здесь

Переписать все цифры каждой строки файла в конец строки
Содержимое текстового файла INPUT.TXT, разделенного на строки, переписать за один проход по файлу в текстовый файл OUTPUT.TXT, перенося при...

Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод)
для каждой строки файла удалить среднее слово. результат записать в файл

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

Перенести цифры в конец строки
. В нем ошибочно набраны лишние знаки (цифры), перенести их в конец, сохраняя порядок. Результат отобразить на экране.

В первый массив перенести все цифры из исходного массива, во второй - все остальные символы
Задан массив из k символов. Создать два новых массива: в первый перенести все цифры из исходного массива, во второй – все остальные...


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

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

Новые блоги и статьи
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru