С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

18.11.2014, 21:03. Просмотров 469. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 21:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбить текст на абзацы (C++):

Разбить текст на абзацы - C++
Доброй ночи, уважаемые программисты. Помогите, пожалуйста, с программкой на С++ в VS2013. Условие таково:Задан текст. Предложения текста...

Разбить текст на абзацы - C++
Всем добрый вечер. Помогите, пожалуйста, с программой на С++ в VS2013. В общем, задан текст. Предложения текста идут подряд....

Разбить текст на страницы - C++
Дан текстовый файл. Преобразовать его, разбив текст на страницы и пронумеровав их, причем номер нечетной страницы должен размещаться в...

Разбить файл на текст и числа - C++
2.Дан текстовый файл. В каждом его строке первые 30 позиций отводятся под текст, а оставшаяся часть - под действительное число. Создать два...

Текст из файла разбить на строки - C++
Помогите написать программу, с функцией которая выводит из текстового файла только N строк. Где N аргумент функции main

Разбить текст на слова и все слова взять в кавычки - C++
Подскажите пожалуйста с кодом , в программу надо ввести текст/переложения, затем программа должна текст разбить на отдельное слово и...

4
nmcf
5690 / 5001 / 1707
Регистрация: 14.04.2014
Сообщений: 20,416
18.11.2014, 21:09 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вместо строк 14-16 вставь:
C++
1
2
ifstream ifs("my_file.txt");
getline(ifs, text);
И fstream подключи.
1
Михаил Мамаев
1 / 1 / 0
Регистрация: 28.10.2014
Сообщений: 34
18.11.2014, 21:20  [ТС] #3
nmcf, cпасибо огромное, все работает. Скажите, пожалуйста, а возможно ли дать компилятору предоставить нам возможность ввести имя файла, и в случае, если такого файла он не находит, вывести что-то типа сообщения об ошибке?
0
nmcf
5690 / 5001 / 1707
Регистрация: 14.04.2014
Сообщений: 20,416
18.11.2014, 21:26 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
    string f_name;
    cout << "Enter file name: ";
    getline(cin, f_name);
    ifstream ifs(f_name);
    if (!ifs)
    {
        cout << "Error." << endl;
        return 1;
    }
1
Михаил Мамаев
1 / 1 / 0
Регистрация: 28.10.2014
Сообщений: 34
18.11.2014, 21:46  [ТС] #5
nmcf, Премного Вам благодарен. Сильно выручили.
0
18.11.2014, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 21:46
Привет! Вот еще темы с ответами:

Разбить текст на предложения, а предложения - на слова - C++
Вот само задание. С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки...

Мини апгрейд кода (абзацы) - C++
Вот код //--------------------------------------------------------------------------- #pragma hdrstop #include &lt;iostream.h&gt; ...

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

Дан текст, в котором встречаются символы «!», «?», «.». Разбить текст на абзацы по 3 предложения в каждом - Pascal ABC
Друзья помогите!!!!! Дан текст, в котором встречаются символы «!», «?», «.». Разбить текст на абзацы по 3 предложения в каждом.


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

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

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