Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.
Код программы:
//---------------------------------------------------------------------------- #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,l=0,cnt=0; //объявление переменных для работы с текстом //--------------------------------------------------------------------------- for(i=0;i<len;i++) { if(buf[i]=='-') { if(buf[i+1]==' ') { n=i; } if(buf[i+1]==' ') { for(int k=n;k<len;k++) { if(buf[k]=='.'||buf[k]=='?'||buf[k]=='!') { l=k; for(j=n;j<=l;j++) cout<<buf[j]; cnt++; break; } } cout<<endl; } } } if(0==cnt)cout<<rus("Таких предложений нет!"); getch(); return 0; } //---------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //----------------------------------------------------------------------------
Создаем текстовый файл в папке с проектом с именем text.txt и заполняем его необходимым содержанием.
Результат работы программы: