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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как лучше передать массив объектов в метод? http://www.cyberforum.ru/cpp-beginners/thread784190.html
Есть класс Product и массив объектов P размера SIZE. Нужно отфильтровать объекты по названию продукта. Для этого передаю массив P в метод fName. Есть ли способ сделать это более...
C++ Начал изучать уже ошибки , или чтото не то делаю я ( Сегодня начал изучать С++ уже идут ошибки Данный код #include <stdio.h> main() { printf('здравствуй, мир\n'); } Если вы все сделали правильно - не пропустили где-либо знака и не до-... http://www.cyberforum.ru/cpp-beginners/thread784161.html
C++ Map stl
Не могу понять, почему не находит через h1.find(argv). когда argv == "-o" vs пишет "itr = (0xcdcdcdcd <Ошибка при чтении символов строки.>, true (205))" int main(int argc, char** argv) {...
Полином C++
Здравствуйте уважаемые, прошу вас помощи, уже недели 2 бьюсь с задачами. Собственно нужно к этим задачам ТОЛЬКО Блок-схемы, я вообще понятия не имею как они делаются. Очень прошу кто сможет...
C++ ошибка Id returned 1 exit status что может значить? http://www.cyberforum.ru/cpp-beginners/thread784138.html
при компиляции программы выдается такая ошибка undefined reference to "WinMain@16" Id returned 1 exit status без указания строк в кот.ошибка.. помогите пожалуйста! спасибо...
C++ Функция , Двумерный массив , Задачка Написать функцию , которая вычисляет сумму квадратов элементов заданной строки. Номер строки предается в функцию в качестве параметра. Написать программу , которая описывает два квадратных массива... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
24.02.2013, 17:21
функция void sentence(std::istream& in) ничего не возвращает (она просто отображает предложения.) и принимает в качестве аргумнта сылку на поток типа istream (входящий поток: файл либо консоль, либо ещё что-то). Далее идёт цикл while ((c = in.get()) && isspace(c)), который просто пропускает пробельные символы. В конструкции
C++
1
2
3
4
 if (c == '-') // вместо тире знак "минус"
        state = true;
    else
        state = false;
просто производится поиск предложения начинающегося со знака "минус". И если это действительно так, тогда срабатывает условие
C++
1
if (state) ...
и while ((c = in.get()) && state) ... в котором отображается предложение. Если встретились символы свидетельстующие о конце предложения
C++
1
2
if (c == '.' || c == '!' || c == '?')
                state = false;
state у нас принимает значение false и вывод прекращается.
Функция main просто открывает поток в файл и производится чтение при помощи функции описаной выше sentence() до тех пор, пока не встретится конец файла. На этом вывод заканчиваетя и закрывается поток in.close();
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru