Форум программистов, компьютерный форум CyberForum.ru

Удалить из текста, находящегося в файле, каждое четное предложение - C++

Восстановить пароль Регистрация
 
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
18.11.2015, 17:26     Удалить из текста, находящегося в файле, каждое четное предложение #1
Не могу разобраться объясните как прописать путь к txt

Добавлено через 9 минут
спасибо уже сделал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2015, 17:26     Удалить из текста, находящегося в файле, каждое четное предложение
Посмотрите здесь:

C++ Удалить из текста каждое четное предложение.
Удалить из текста, находящегося в файле, каждое четное предложение C++
C++ Удалить из текста, находящегося в файле, каждое четное предложение.
Удалить из текста, находящегося в файле, каждое четное предложение. C++
C++ Удалить из текста, находящегося в файле, каждое четное предложение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
19.11.2015, 12:57  [ТС]     Удалить из текста, находящегося в файле, каждое четное предложение #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
#include <clocale>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <fstream>
 
int _tmain(int argc,_TCHAR* argv[])
{
using namespace std;
setlocale(LC_ALL,"Russian");
 
ifstream input_file("text.DAT");
char one[64], two[64], three[64];
input_file.getline(one, sizeof(one));
input_file.getline(two, sizeof(two));
input_file.getline(three, sizeof(three));
cout <<one<<end;
cout <<two<<end;
cout <<three<<end;
getch();
system("pause"); 
return 0;
}
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
19.11.2015, 13:44  [ТС]     Удалить из текста, находящегося в файле, каждое четное предложение #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
#include <iostream> 
#include <cstdio>
using namespace std; 
void main() 
{ 
setlocale(LC_ALL,".1251");
FILE *in = fopen(".\\main\\in.txt","r");
if(in==NULL) 
{ 
cout«"Ошибка в открытии файла in.txt"«endl; 
} 
else 
{ 
char str[64];
fgets(str,64,in);
while(!feof(in)) 
{ 
cout«str;
fgets(str,64,in); 
} 
fcloseall(); 
} 
}
Lensato
49 / 49 / 24
Регистрация: 07.10.2015
Сообщений: 170
19.11.2015, 14:50     Удалить из текста, находящегося в файле, каждое четное предложение #4
Считаем, что конец предложения найден, если обнаружены подряд два символа: точка и пробел
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
#include <iostream>
#include <cstdio>
 
using std::cout;
using std::cin;
using std::endl;
 
void main()
{
    setlocale(LC_ALL, ".1251");
 
    FILE *f_source = fopen(".\\main\\in.txt", "r");
    if (f_source == NULL)
    {
        cout << "Ошибка в открытии файла in.txt" << endl;
    }
    else
    {
        FILE *f_destination = fopen(".\\main\\out.txt", "w");
        char ch;
        char *str = new char[2];
        str[1] = '\0';
 
        char first_symbol = '0';
        char second_symbol = '0';
        bool it_is_odd = true;
 
        while (!feof(f_source))
        {
            ch = fgetc(f_source);
 
            first_symbol = second_symbol;
            second_symbol = ch;
 
            if (first_symbol == '.' && (second_symbol == ' ' || second_symbol == '\t' || second_symbol == '\n'))
                it_is_odd = !it_is_odd;
 
            if (it_is_odd)
            {
                str[0] = ch;
                fprintf(f_destination, str);
            }
        }
 
        fcloseall();
    }
 
    system("pause");
}
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
19.11.2015, 15:27  [ТС]     Удалить из текста, находящегося в файле, каждое четное предложение #5
что не пойму как это программам работает. Если не сложно объясните словами.
Lensato
49 / 49 / 24
Регистрация: 07.10.2015
Сообщений: 170
19.11.2015, 15:38     Удалить из текста, находящегося в файле, каждое четное предложение #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
while (!feof(f_source)) // цикл, пока файл не кончился
    {
        ch = fgetc(f_source);   // считать 1 символ (допустим это пробел ' '
 
        // допустим было было:
        // first_symbol = 'н'
        // second_symbol = '.'
 
        first_symbol = second_symbol;   
        second_symbol = ch;
 
        // тогда стало:
        // first_symbol = '.'
        // second_symbol = ' '
 
        if (first_symbol == '.' && (second_symbol == ' ' || second_symbol == '\t' || second_symbol == '\n'))    // если первый символ - точка, а второй - пробел, табуляция или перенос строки, то преложение закончилось
            it_is_odd = !it_is_odd;     // в первый раз it_is_odd = true (и это было 1-е предложение, т.е. нечетное) тепрь it_is_odd = true (т.е. теперь читаем четное предложение)
 
        if (it_is_odd)  // если предложение нечетное
        {
            str[0] = ch;    // делаем из символа ch строку str = { 'ch', '\0' }, так как функция fprintf не может принять одиночный символ
            fprintf(f_destination, str);    // пишем в новый файл нашу строку (т.е. один символ)
        }
        // а если предложенеи четное, то ничего не делаем, читаем символы дальше, пока файл не кончится
    }
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
19.11.2015, 15:59  [ТС]     Удалить из текста, находящегося в файле, каждое четное предложение #7
это программа работает не правильно. Она создает 2-й txt файл и в него пишет тоже самое что и в 1-м txt файле.

Добавлено через 17 секунд
или я может что напутал.
Lensato
49 / 49 / 24
Регистрация: 07.10.2015
Сообщений: 170
19.11.2015, 16:05     Удалить из текста, находящегося в файле, каждое четное предложение #8
Цитата Сообщение от Александр9797 Посмотреть сообщение
это программа работает не правильно. Она создает 2-й txt файл и в него пишет тоже самое что и в 1-м txt файле.
Если в исходном файле хоть раз встречается комбинация ". " - точка пробел, то до следующей такой же комбинации в новый файл ничего записываться не будет.
(а так же точка "табуляция" "перенос строки")
Если таких комбинаций нет, то запишется весь файл.
Александр9797
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 102
19.11.2015, 16:12  [ТС]     Удалить из текста, находящегося в файле, каждое четное предложение #9
Вес понял. Спасибо. Вы уж извините что так пристал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 16:16     Удалить из текста, находящегося в файле, каждое четное предложение
Еще ссылки по теме:

C++ Удалить каждое четное слово из строки
Удалить каждое четное слово из строки C++
Удалить из текста, находящегося в файле, каждое четное предложение C++

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

Или воспользуйтесь поиском по форуму:
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
19.11.2015, 16:16     Удалить из текста, находящегося в файле, каждое четное предложение #10
можно считать весь файл в вектор с помощью getline с делиметром "." а потом записать в этот же файл нечетные элементы вектора
Yandex
Объявления
19.11.2015, 16:16     Удалить из текста, находящегося в файле, каждое четное предложение
Ответ Создать тему
Опции темы

Текущее время: 13:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru