Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
watmann
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 20
1

Файл: Переписать один текстовый файл в другой при условии, что все двойные пробелы буду заменены одинарными

21.11.2015, 14:50. Просмотров 325. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите, пожалуйста, с заданием, а то все мои идеи нерабочие совсем.
Задание: Переписать один текстовій файл в другой при условии, что все двойные пробелы буду заменены одинарными и что все одинарные слова ( слова из одной буквы) будут исключены (т.е. не запишутся в новый файл).
Попытка реализации:
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
#include <cstdlib>
#include <stdio.h>
#include <iostream>
using namespace std;
void transform (FILE *f1, FILE *f2); 
int main (){
    FILE *fin, *fout;
    fin = fopen ("original.txt","r"); 
    fout = fopen ("result.txt", "w"); 
    transform (fin, fout);
    fclose (fin);
    fclose (fout);
    return 0;
}
void transform (FILE *f1, FILE *f2){
    int n, m,k;
    n = fgetc (f1);
    m = fgetc (f1);
    k = fgetc (f1);
    while (n != EOF){
        if ((n!=' ')&&(m!=' ')){
            fputc (n, f2);
            fputc (m, f2);
            n=k;
        }
        if ((n=" ")&&(m!=" ")&&(k=" ")){
            n=k;
        }
    }   
}
Спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2015, 14:50
Ответы с готовыми решениями:

Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
#include &lt;iostream&gt; #include &lt;math.h&gt; using std::cin; using std::cout;...

Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв и пробела
Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв...

Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в другой новый файл
11. Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в...

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

Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом каждое сочетание букв “no” на “on”
Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом...

6
prostoprosto
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 5
21.11.2015, 14:55 2
Ну для начала нужно наверное

C++
1
#include <fstream>
добавить...
0
watmann
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 20
21.11.2015, 20:31  [ТС] 3
Ну что тот вариант не работал, что этот. Я вообще не могу понять почему но нормально не записывает в другой файл.
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
#include <cstdlib>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
using namespace std;
void transform (FILE *f1, FILE *f2); 
int main (){
    FILE *fin, *fout;
    fin = fopen ("original.txt","r"); 
    fout = fopen ("result.txt", "w"); 
    transform (fin, fout);
    fclose (fin);
    fclose (fout);
    return 0;
}
void transform (FILE *f1, FILE *f2){
    int n, m,k;
    n = fgetc (f1);
    m = fgetc (f1);
    k = fgetc (f1);
    while (n != EOF){
        if ((n!=' ')&&(m!=' ')){
            fputc (n, f2);
            fputc (m, f2);
            n=k;
        }
        if ((n=' ')&&(m!=' ')&&(k=' ')){
            n=k;
        }
    }   
}
0
na1l
18 / 11 / 8
Регистрация: 07.09.2013
Сообщений: 63
21.11.2015, 21:21 4
C++
1
2
3
    n = fgetc (f1);
    m = fgetc (f1);
    k = fgetc (f1);
а случаем не одни ли и те же символы записываются в переменные? почему бы не использовать getline?
0
watmann
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 20
22.11.2015, 12:02  [ТС] 5
а случаем не одни ли и те же символы записываются в переменные? почему бы не использовать getline?
типа getline(cin, string)? я так думала через string решать, но там начались проблемы с многоразовым поиском двойных пробелов и т.д.
0
IronPhoenix
83 / 10 / 8
Регистрация: 17.11.2015
Сообщений: 39
22.11.2015, 12:26 6
У Вас в цикле while нет считывания символов, Вы считали первые три символа и всё, а нужно читать их дальше
0
watmann
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 20
22.11.2015, 23:35  [ТС] 7
У меня уже получается записать в другой файл. Но то, как он записывает - это жесть.
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
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <fstream>
 
using namespace std;
void transform (FILE *f1, FILE *f2); 
int main (){
    FILE *fin, *fout;
    fin = fopen ("original.txt","r"); 
    fout = fopen ("result.txt", "w"); 
    transform (fin, fout);
    fclose (fin);
    fclose (fout);
    return 0;
}
void transform (FILE *f1, FILE *f2){
    int n, m, k;
    while (n != EOF){
    n = fgetc (f1);
        while (m!=EOF){     
        m = fgetc (f1);         
            while (k!=EOF){
                k = fgetc (f1);
                if ((n!=' ')&&(m!=' ')&&(k!=' ')){
                    fputc(n,f2);
                    fputc(m,f2);
                    n=k;
                }   
                if ((n=' ')&&(m=' ')&&(k!=' ')){
                    fputc(n,f2);
                    n=k;
                }
                if ((n!=' ')&&(m=' ')&&(k=' ')){
                    fputc(n,f2);
                    n=k;
                }
                if ((n=' ')&&(m!=' ')&&(k!=' ')){
                    fputc(n,f2);
                    fputc(m,f2);
                    n=k;
                }
                if ((n!=' ')&&(m!=' ')&&(k=' ')){
                    fputc(n,f2);
                    fputc(m,f2);
                    n=k;
                }
                if ((n!=' ')&&(m=' ')&&(k!=' ')){
                    fputc (n,f2);
                    fputc(m,f2);
                    n=k;
                }
                if ((n=' ')&&(m!=' ')&&(k=' ')){
                    fputc(n,f2);
                    n=k;
                }               
            }
        }
    }   
}
0
22.11.2015, 23:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2015, 23:35

Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.
Помогите новечку! Дан текстовый файл. Заменить в нем все подряд идущие пробелы...

Дан текстовый файл f. Переписать текст в файл g, удалив все группы букв s (s передается параметром)
В общем нужно из строки удалить подстроку, которая задается с клавиатуры

Сконвертировать текстовый файл в бинарный, переписать только положительные числа в другой бинарный файл
Бинарные файлы!! Помогите пожалуйста. Дано бинарный файл ( данные сначала в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru