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

Записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные - C++

Восстановить пароль Регистрация
 
Riwalls
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 2
26.12.2013, 21:10     Записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные #1
Нужно написать программу, которая считывает текст из файла и записывает в новый файл сначала предложения, начинающиеся с тире, а затем все остальные.

У меня тут какие-то косяки с циклом((, а ещё, нужно результат в новый файл сохранить.
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
#include<locale>
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    FILE *text;
    text = fopen("text.txt", "r");
    if (!text) 
    {
        puts("Ошибка открытия файла");
        return 1;
    }
    fseek (text, 0, SEEK_SET); 
    long len = ftell (text);
    char *buf = new char [len + 1]; 
    const int l_block = 1024; 
    int num_block = len / l_block;
    fseek (text, 0, SEEK_END);
    fread (buf, l_block, num_block + 1, text);
    buf[len] = '\0';
    long n = 0, i = 0, j = 0;
    while (buf[i]) 
    {
        if(buf[i] == '.'&& buf[i+1] == ' ' && buf[i+2] =='-') 
        {
            for (j = n; j <= i; j++) 
                putchar(buf[j]);
            n = i + 1;
        }
        if ( buf[i] == '.' || buf[i] == '!') 
            n = 1 + 1;
            i++;
    }
    //fwrite (buf , 1 , sizeof(buf) , text);
    fclose (text);
    printf("\n");
    return 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 21:10     Записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные
Посмотрите здесь:

Записать в этот же массив сначала все положительные числа и нули, а затем все отрицательные C++
дано 100 чисел, сначала вывести все отрицательные а затем все остальные C++
Вывести только предложения, начинающиеся с тире C++
Даны 100 чисел. Напечатать сначала все отрицательные из них, а затем все остальные C++
Дано 12 чисел. Напечатать сначала вс отрицательные из них, а затем все остальные. C++
C++ Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные
Вывести на экран сначала все цифры, входящие в текст, а затем все остальные литеры C++
Вывести на экран сначала цифры, затем буквы, затем остальные символы исходной строки C++
C++ Сначала вывести все цифры строки, а затем все остальные литеры
C++ Преобразовать массив: сначала элементы больше заданного числа f, а затем - все остальные
C++ Вывести на экран предложения начинающиеся с тире
C++ Вывести сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.12.2013, 23:11     Записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные #2
Цитата Сообщение от Riwalls Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FILE  text;
    text = fopen("text.txt", "r");
    if (!text) 
    {
        puts("Ошибка открытия файла");
        return 1;
    }
    fseek (text, 0, SEEK_SET); 
    long len = ftell (text);
    char  buf = new char [len + 1]; 
    const int l_block = 1024; 
    int num_block = len / l_block;
    fseek (text, 0, SEEK_END);
    fread (buf, l_block, num_block + 1, text);
У вас здеь всё наоборот сделано. Сначала нужно курсор в конец, а не в начало (и наоборот).
Yandex
Объявления
26.12.2013, 23:11     Записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные
Ответ Создать тему
Опции темы

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