С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 2

Потоковые классы. Работа с файлами

27.05.2016, 05:09. Показов 701. Ответов 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
40
41
42
43
44
45
46
47
48
49
50
51
#include <fstream>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;
int main()
{setlocale( LC_ALL,"RUS");
char ch;
int k=0;
fstream fin("file.txt", ios::in); 
while(fin)
{fin.get(ch); 
 cout<<ch;
 if (ch=='!') k++; //...
 }
cout<<endl;
cout<<endl;
fin.close();
cout<<"Êîëè÷åñòâî âîñêëèöàòåëüíûõ ïðåäëîæåíèé "<<k<<endl;
int kol=0, pos[10], i=0, n, n1, n2;
fin.close();
fin.open("file.txt", ios::in);
while(getch())
{   
while(fin)
{
 fin.get(ch); 
 if (ch=='.'||ch=='?'||ch=='!') // 
      {        
         pos[i]=kol; 
         i++; 
         if (ch=='!')break; 
       }
 kol++; 
}
n=i-1;
n1=pos[n-1]; n2=pos[n]; kol=0; 
fin.close();
cout<<endl<<endl;
fin.open("file.txt", ios::in);
while(fin)
{
 fin.get(ch);kol++; 
 cout<<ch;
 if(kol==n1+1)  cout<<"<<";
 if(kol==n2+1)  cout<<">>";
}}
fin.close();
return 0;
}
Буду очень благодарна за помощь!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2016, 05:09
Ответы с готовыми решениями:

потоковые классы
напишите пожалуйста, основные методы ввода и вывода в потоковых классах

Потоковые классы
Привет все программистам! Помогите плиз с задание: Реализуйте модуль, подключение которого перегружает операции помещения в поток...

ПОТОКОВЫЕ КЛАССЫ С++
Всем здравствуйте! Опять время сессии , и опять обнаглевший студент просит помощи, в надежде что кто-либо откликнится) нужно на завтро...

1
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.05.2016, 16:00
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
 
int output_lastp(std::ostream& _out, std::istream& _in, char ch){
    int n = 0;
    std::string::size_type i;
    std::string p, s;
 
    while(std::getline(_in, s, ch) && !_in.fail()){
        if(!s.length())
            continue;
 
        if((i = s.find_last_of(".!?")) == std::string::npos)
            i = 0;
        else 
            ++i;
 
        i = s.find_first_not_of(" \t\n", i);
 
        if(_in.good() && (i != std::string::npos)){
            p.assign(s.begin() + i, s.end());
            ++n;
        }
    }
 
    if(p.length() > 0)
        _out << p << std::endl;
    return n;
}
 
int main(void){
    char s[] = "Добрый день, форумчане!!! Очень нужна ваша помощь!"\
               "Есть программа, которая находит количество предложений с восклицательным знаком."\
               "Нужно как-то сделать вывод последнего восклицательного предложения.";
    std::istringstream sp(s);
    output_lastp(std::cout, sp, '!');
 
    //работа с файлом
    std::ifstream fin("input.txt");
    std::ofstream fout("output.txt");
    output_lastp(fout, fin, '!');
    fin.close();
    fout.close();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2016, 16:00
Помогаю со студенческими работами здесь

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

Потоковые классы
Добрый день ! метод mark перемещает указатель в заданную позицию ?

С++. Классы. Работа с файлами
Нужно из сиситемого файла считать информацию, и вывести её в виде таблицы удалив не нужные знаки-разделители. В моем файле это : и буква x....

Контейнерные классы и работа с файлами
Написать программу, которая считывает целые числа из файла, имя которого задается с клавиатуры, в параметризованную коллекцию List&lt;&gt;

Работа с файловой системой: классы Directory и Filе и классы DirectoryInfo и FileInfo
Уважаемые форумчане помогите пожалуйста с практической работой. Программным путем: В папке С:\temp создайте папки К1 и К2. В...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru