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

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

06.04.2014, 21:47. Показов 3113. Ответов 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
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