Автор: dimdln (27.06.2007 в 21:46)
Спасибо, Alex! Поплавская тоже помогла. В результате родилось такое решение.
Теперь предложение надо поместить в структуру (какую - пока не знаю) и
попроботать написать программу анализа предложения
// sentences.cpp Программа считывает в буфер текстовый файл,
// находит признак конца предложения и выводит предложение куда
// хотите (в файл, на экран, в структуру и т.д.)
// Microsoft visual c++ Express 2005 Edition
#include <stdafx.h>
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream fin("D:\\MyLib\\mozgtest.txt",ios::in) ;
if (!fin) {cout << "невозмжно открыть файл"
<< endl; return -1;}
fin.seekg(0,ios::end); //перемещение текущей позиции в
конец
long len = fin.tellg(); // определение длины АЙЛА
char* buf =new char[len+1]; // выделяет len+1 байтов под буфер
buf
fin.seekg(0,ios::beg); //перемещение текущей позиции снова в
начало
fin.read(buf,len); // считывает файл в буфер
buf[len] ='\0'; // нуль-символ - признак конца
масива
//-------------
int n=0, i=0,j=0;
int count =0; // количество предложений в
тексте
while(buf[i]) { //читает буфкр до тех пор, пока
не встретит \0
if(buf[i] == '.' || buf[i]=='?' || buf[1] == '!'){
for(j==n; j<=i; ++j) // ОБЯЗАТЕЛЬНО ==, иначе не
работает
cout << buf[j] ; cout << endl;
count++;
}
n = i+1;
i++;
}
cout << "Всего предложений в файле " << count << endl;
fin.close();
return 0;
}
//21:32 27.06.2007 dimdln