![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В листинге 6.2 представлена программа, которая считывает текст из файла (рис. 6.3) и выводит на экран только вопросительные предложения из этого текста (рис. 6.4).
Исходными данными в этой задачи является текстовый файл неизвестного размера, состоящий из неизвестного количества предложений. Предложение может занимать несколько строк, поэтому ограничиться буфером на одну строку в данной задаче нельзя. Нужно выделить буфер, в который поместиться весь файл. Алгоритм решения задачи следующий: 1. Открыть файл. 2. Определить его длину в байтах.
3. Выделить в динамической памяти буфер соответствующего размера.
4. Считать файл с диска в буфер. 5. Анализируя буфер посимвольно, выделять предложения. Если предложение оканчивается вопросительным знаком, вывести его на экран.
Детализируем последний пункт алгоритма. Для вывода предложения необходимо хранить позиции его начала и конца. Предложение может оканчиваться точкой, восклицательным или вопросительным знаком. В первых двух случаях предложение пропускается. Это выражается в том, что значение позиции начала предложения обновляется. Оно устанавливается равным символу, следующему за текущим, и просмотр продолжается. В случае обнаружения вопросительного знака предложение выводится на экран, после чего также устанавливается новое значение позиции начала предложения.
Листинг 6.2 Вывод вопросительных предложений
#include <stdio.h>
#include <iostream>
#include <string>
#include <windows.h>
Дата публикования: 2015-04-07; Прочитано: 222 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!