Вариант 16

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

Код программы:

//---------------------------------------------------------------------------- 
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<windows.h>
#include<vcl.h>
#pragma hdrstop
#pragma argsused
//----------------------------------------------------------------------------
char *rus(const char *text); //функция для распознавания русских символов
int main(int argc, char* argv[])
{
 ifstream fin("text.txt");  //открываем файл для чтения
 if(!fin)                             //если файла нет
  {
   cout<<rus("Файл text не существует!");   //выводим сообщение
   getch();
   return 1;
  }
 fin.seekg(0,ios::end); //определяем длину файла, перемещаемся на его конец
 long len=fin.tellg();   //получаем длину файла и заносим в переменную len
 char *buf=new char[len+1];//выделяем len+1 байтов для хранения текста из файла
 fin.seekg(0,ios::beg);  //переносимся опять на начало файла для чтения
 fin.read(buf,len);      //проводим чтение из файла
 buf[len]='\0';          //заносим 0-ой символ в конец файла
 long n=0,i=0,j=0;   //объявление переменных 
 long w=0,e=0,r=0;   //для работы с текстом
 //организуем поиск вопросительных предложений
 while(buf[i])       //просмотр файла
  {
   if(buf[i]=='?')  //если встретился знак ?
    {
     for(j=n;j<=i;j++)   //выводим на
     cout<<buf[j];       //экран предложения
     n=i+1;              //заносим позицию начала нового предложения
    }
   if(buf[i]=='!'|| buf[i]=='.') //если встретился знак ! или . пропускаем предложение
   n=i+1;                       //заносим позицию начала нового предложения
   i++;                        //увеличиваем на 1 для просмотра массива
  }
 cout<<endl;
 //организуем поиск восклицательных предложений
 while(buf[e])
  {
   if(buf[e]=='!')  //если встретился знак !
    {
     for(r=w;r<=e;r++)   //выводим на
     cout<< buf[r];      //экран предложения
     w=e+1;              //заносим позицию начала нового предложения
    }
   if(buf[e]=='?'|| buf[e]=='.') //если встретился знак ? или . пропускаем предложение
   w=e+1;                        //заносим позицию начала нового предложения
   e++;                           //увеличиваем на 1 для просмотра массива
  }
 getch();
 return 0;
}
//----------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text,bufrus);
  return bufrus;
 }
//----------------------------------------------------------------------------

Создаем текстовый файл в папке с проектом с именем text.txt и заполняем его необходимым содержанием.

Результат работы программы:

Результат работы. Шестнадцатый вариант. Строки и файлы

Вариант 15
Вариант 17
error: Content is protected !!
Adblock
detector