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

Переписать содержимое файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания

06.04.2014, 21:47. Показов 3089. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текстовый файл А. Переписать его содержимое в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания.
Не знаю, как сделать функцию для переноса знаков препинания в конец строки.... Подскажите кто может.
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
#include <StdAfx.h>
#include <fstream>
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(0, ""); 
    string str; 
    ifstream fin ("A.txt");
    ofstream fout ("B.txt"); 
 if (!fout.is_open())
 {
        cout << "Файл A не открыт!\n"; 
         system("pause");
         return 1;
    }
   
 if (!fin.is_open())
   {
        cout << "Файл B не открыт!\n"; 
         system("pause");
         return 1;
    }
    
    getline(fin, str);
         fin.close(); 
 
    fout << str;
       fout.close();
   
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2014, 21:47
Ответы с готовыми решениями:

Переписать все из файла А в файл В, перенося в конец каждой строки все входящие в нее знаки препинания
Переписать все из файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания. С третьей кнопкой явно...

Составное текстового файла f, разделенное на строки, переписать в текстовый файл g, перенося при этом в конец каждой строки все цифры, входящие в него
Составное текстового файла f, разделенное на строки, переписать в текстовый файл g, перенося при этом в конец каждой строки все цифры,...

Очередь: переписать содержимое одного файла в другой, перенося знаки препинания в конец строки
1. Пусть дан текстовый файл А. Перепишите его содержимое в файл В, перенося при этом в конец каждой строки все входящие в нее знаки...

15
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 04:31
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 <StdAfx.h>
#include <fstream>
#include <iostream>
#include <cctype>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(0, ""); 
   
    ifstream fin ("A.txt");
    ofstream fout ("B.txt"); 
    if (!fout.is_open())
    {
        cout << "Файл A не открыт!\n"; 
        system("pause");
        return 1;
    }
   
    if (!fin.is_open())
    {
        cout << "Файл B не открыт!\n"; 
        system("pause");
        return 1;
    }
    
    char ch;
    string punct;
    while (fin.get(ch))
    {
        if (ispunct((unsigned char)ch))
            punct += ch;
        else if (ch == '\n')
        {
            fout << punct << ch;
        }
        else
            fout.put(ch);
    }
    fin.close(); 
    fout.close();
   
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 21:30  [ТС]
alsav22, Спасибо на помощь, но он просто удаляет их)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:35
Цитата Сообщение от Bambaster01 Посмотреть сообщение
но он просто удаляет их)
Сказки не рассказывайте.
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 21:37  [ТС]
alsav22, После компиляции в текстовом файле B остается текст без знаков препинания)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:47
Цитата Сообщение от Bambaster01 Посмотреть сообщение
После компиляции в текстовом файле B остается текст без знаков препинания)
Сказки не рассказывайте.
Единственное, что нужно добавить - это очистку строки со знаками пуктуации, после записи очередной строки (после fout << punct << ch, добавить: punct.clear()).
Добавим в код вывод содержимого файлов на консоль:
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
#include <StdAfx.h>
#include <fstream>
#include <iostream>
#include <cctype>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(0, ""); 
   
    ifstream fin ("A.txt");
    ofstream fout ("B.txt"); 
    if (!fout.is_open())
    {
        cout << "Файл A не открыт!\n"; 
        system("pause");
        return 1;
    }
   
    if (!fin.is_open())
    {
        cout << "Файл B не открыт!\n"; 
        system("pause");
        return 1;
    }
    
    char ch;
    string punct;
    while (fin.get(ch))
    {
        cout << ch;
        if (ispunct((unsigned char)ch))
            punct += ch;
        else if (ch == '\n')
        {
            fout << punct << ch;
            punct.clear();
        }
        else
            fout.put(ch);
    }
    fin.close(); 
    fout.close();
 
    fin.open("B.txt");
    if (!fin.is_open())
    {
        cout << "Файл B не открыт!\n"; 
        system("pause");
        return 1;
    }
    
    cout << endl << endl;
    cout << fin.rdbuf();
 
    fin.close();
    
    system("pause");
    return 0;
}
Миниатюры
Переписать содержимое файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания  
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:50
Кажется понял, о чём пишите... В задании написано:
Цитата Сообщение от Bambaster01 Посмотреть сообщение
перенося при этом в конец каждой строки все входящие в нее знаки препинания.
Перенося, а не копируя. Или не так?
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:07  [ТС]
Просто у меня даже после компиляции, даже в самой программе не пишет знаков препинания.

Добавлено через 6 минут
alsav22, Смысл такой, что нужно из текста, если есть, убрать в конец строки все знаки препинания. Удаляя при этом те знаки которые находятся в тексте.

Добавлено через 1 минуту
alsav22, У вас все верно, но у меня почему-то он не записывает их в файл и не выводит в самой программе после компиляции.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 22:23
Цитата Сообщение от Bambaster01 Посмотреть сообщение
но у меня почему-то он не записывает их в файл и не выводит в самой программе после компиляции.
Файл A.txt в папке проекта? Содержимое этого файла покажите. Сделайте очистить и перестроить (без запуска).
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:29  [ТС]
Не будь он в папке он бы у меня не открылся. Содержимое: hbfghgf,gh,hyjg,hgj,.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 22:37
???
Цитата Сообщение от alsav22 Посмотреть сообщение
Сделайте очистить и перестроить (без запуска).
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:39  [ТС]
alsav22, Сейчас заработало. Я закрепил файлы в проекте и добавил еще 1 строку. Но если я добовляю еще строки, то он увеличивает количество выводимых символов в 2 раза. И в последней строке он не выводит символы.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 22:46
Код из какого поста пробуете?

Добавлено через 1 минуту
Код показывайте.
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:48  [ТС]
alsav22,
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 <StdAfx.h>
#include <fstream>
#include <iostream>
#include <cctype>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(0, ""); 
   
    ifstream fin ("A.txt");
    ofstream fout ("B.txt"); 
    if (!fout.is_open())
    {
        cout << "Файл A не открыт!\n"; 
        system("pause");
        return 1;
    }
   
    if (!fin.is_open())
    {
        cout << "Файл B не открыт!\n"; 
        system("pause");
        return 1;
    }
    
    char ch;
    string punct;
    while (fin.get(ch))
    {
        if (ispunct((unsigned char)ch))
            punct += ch;
        else if (ch =='\n')
        {
            fout << punct << ch;
        }
        else
            fout.put(ch);
    }
    fin.close(); 
    fout.close();
   
    system("pause");
    return 0;
}
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 23:01
Вы внимательно читаете, что вам пишут? Почитайте 6-й пост.

Добавлено через 1 минуту
Цитата Сообщение от Bambaster01 Посмотреть сообщение
И в последней строке он не выводит символы.
Перевод строки, в конце последней строки, сделайте.

Добавлено через 9 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Перевод строки, в конце последней строки, сделайте.
Или цикл чтения так измените:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    while (true)
    {
        fin.get(ch);
        if (!fin.eof())
        {
            cout << ch;
            if (ispunct((unsigned char)ch))
                punct += ch;
            else if (ch == '\n')
            {
                fout << punct << ch;
                punct.clear();
            }
            else
                fout.put(ch);
        }
        else
        {
            fout << punct;
            break;
        }
    }
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 23:03  [ТС]
alsav22, Спасибо все заработало) Большое спасибо за то, что потратили свое время)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.04.2014, 23:03
Помогаю со студенческими работами здесь

Очереди: Содержимое текстового файла переписать в новый файл, перенося цифры в конец строки
Здравствуйте! Используя очередь, решить следующую задачу. Содержимое текстового файла f, разделенное на строки, переписать в...

Задание со стеками и очередями: Содержимое файла f переписать в файл g, перенося цифры в конец строки
Помогите решить задание: Используя очередь, решить следующую задачу. Содержимое текстового файла f, разделенное на строки, переписать...

Перенести в конец каждой строки все входящие в неё цифры
Тёмный лес для меня, те кто дал задание сказали, что оно интересное, помогите пожалуйста решить её, пока интересно только то, как её...

Переписать в файл g все знаки препинания файла f...
Помогите кто чем сможет. Пожалуйсто. Имеется файл f, компонентами которого являются символы. Переписать в файл g все знаки препинания...

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru