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

Разбить текст на абзацы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск максимального независимого множества вершин в графе http://www.cyberforum.ru/cpp-beginners/thread1304402.html
Всем доброго времени суток, Имеем матрицу смежности простого неориентированного графа Задача найти максимальное независимое множество вершин и перечислить их. Имеем следующее положение: нахождение...
C++ Обратный порядок С++ Добрый вечер. Есть прога, но не могу разобраться в ней, можете поставить комментарии? И как реализовать этот же код программы, но что бы строку (предложение) вводить с клавиатуры. Спасибо. #include... http://www.cyberforum.ru/cpp-beginners/thread1304401.html
Вложенные циклы: цель использования и принцип работы C++
for(i=0;i<3;i++){ for(j=0;j<4;j++){ for(k=1;k<6;k++) ... }} как понять их принцип работы?в книгах написано,что эти циклы нужны для ввода/вывода многомерных массивов... Добавлено через 1...
Избавиться от погрешности в выделении дробной части C++
Нужно избавиться от погрешности в выделении дробной части #include <stdio.h> #include <math.h> int main() { int x,n,summa1=0,b,c,summa2=0,t,e,u; float l,p,r,y; printf("Vvedite l :");...
C++ Рекурсия. Определите закономерность формирования членов. Найдите N-ый член последовательности http://www.cyberforum.ru/cpp-beginners/thread1304392.html
Определите закономерность формирования членов последовательности. Найдите N-ый член последовательности, сократив количество рекурсивных вызовов. 1 , 2, 3/2 , 7/4 , 13/8 , ...
C++ Скопировать два двумерных массива в один одномерный int ReshKardanoA; cout<<endl; int k=0,s=0,l=0; j=0; while(s==32) { if(k==3) { l++; for(i=0;i<4;i++) ReshKardanoA=ReshKardano; } подробнее

Показать сообщение отдельно
Михаил Мамаев
1 / 1 / 0
Регистрация: 28.10.2014
Сообщений: 34

Разбить текст на абзацы - C++

18.11.2014, 21:03. Просмотров 457. Ответов 4
Метки (Все метки)

Здравствуйте, уважаемые программисты. Такой вопрос. Есть задание и для него уже написана (ниже) программа (спасибо одному хорошему человеку с этого форума). "Задан текст. Предложения текста идут подряд. Преобразовать текст так, чтобы каждое предложение составляло отдельный абзац, начинающийся с красной строки в три пробела."
Но вместо того, чтобы давать компилятору ввести свой текст, нужно дать программе брать текст из txt - файла, предварительно созданного и отредактированного примерно таким образом.
C++
1
2
FILE * infile;
infile=fopen(“my_file.txt”,”r”);
Каким образом это можно реализовать? Теперь мне просто выводит пустоту. Заранее спасибо за помощь.

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
#include <iostream>                 //подключение библиотеки  <iostream>
#include <stdio.h>                  //подключение библиотеки  <stdio.h>
#include <stdlib.h>                 //подключение библиотеки  <stdlib.h>
#include <string>                   //подключение библиотеки  <string>
#include <sstream>                  //подключение библиотеки  <sstream>  
#include <conio.h>                  //подключение библиотеки  <conio.h> 
#include <ctype.h>                  //подключение библиотеки  <ctype.h> 
 
using namespace std;                    //обеспечим доступ к именам из std без префикса std
 
int main()                             //определение функции с именем main()
{
    string text;
    cout << "Enter random text \n\n\n\n\n";
    getline(cin, text);
    cout << "\n\n\n\n\n";
    setlocale(LC_CTYPE, "Russian");   //создание русскоязычного интерфейса программы
    int len = text.length();
    string a = "   ";
    string b = a;
    int i = -1;                     //присваиваем переменной i значение -1
    while (++i < len)              //начало цикла
    {
        b += text[i];            //копируем символ в новую строку
        if (text[i] == '.')     //если дошли до точки
        {
            b += "\n";        //вставляем перевод строки
            b +=a ;          //вставляем табуляцию
 
            if (i + 1 < len && text[i + 1] == ' ')    //игнорируем пробел после точки, если он там есть
            {
                i=i+1;
            }
        }
    }
 
    cout << b;                //вывод на экран отредактированного текста, в соответствии с заданием
    system("pause");         //команда о выводе командной строки
    return 0;               //возвращающее значение
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru