0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
1

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

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

Author24 — интернет-сервис помощи студентам
Дан текстовый файл А. Переписать его содержимое в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания.
Не знаю, как сделать функцию для переноса знаков препинания в конец строки.... Подскажите кто может.
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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2014, 21:47
Ответы с готовыми решениями:

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

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

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

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

15
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 04:31 2
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  [ТС] 3
alsav22, Спасибо на помощь, но он просто удаляет их)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:35 4
Цитата Сообщение от Bambaster01 Посмотреть сообщение
но он просто удаляет их)
Сказки не рассказывайте.
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 21:37  [ТС] 5
alsav22, После компиляции в текстовом файле B остается текст без знаков препинания)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:47 6
Цитата Сообщение от 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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 21:50 7
Кажется понял, о чём пишите... В задании написано:
Цитата Сообщение от Bambaster01 Посмотреть сообщение
перенося при этом в конец каждой строки все входящие в нее знаки препинания.
Перенося, а не копируя. Или не так?
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:07  [ТС] 8
Просто у меня даже после компиляции, даже в самой программе не пишет знаков препинания.

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

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

Добавлено через 1 минуту
Код показывайте.
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 52
07.04.2014, 22:48  [ТС] 14
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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.04.2014, 23:01 15
Вы внимательно читаете, что вам пишут? Почитайте 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  [ТС] 16
alsav22, Спасибо все заработало) Большое спасибо за то, что потратили свое время)
0
07.04.2014, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2014, 23:03
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru