Показать сообщение отдельно

  #4354  
Старый 22.11.2009, 13:51
fker
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
С нами: 9187097

Репутация: 158
По умолчанию

2[Dead]Demon
Код:
#include <conio.h>
#include <stdio.h>
#include <iostream>

using namespace std;
int main(void)
{ 
FILE * f;
f=fopen("E:\\text2.txt","r");
if (f == NULL){	
	//cout << Rus("Файл не найден!\n");
	getch(); 
	return 1;
}
// определяем длину файла
fseek(f,0,SEEK_END); long len=ftell(f);
// выделяем буфер необходимого размера
char *buf=new char[len+1];

// смещаем указатель на начало файла и
// считываем файл в буфер
fseek(f,0,SEEK_SET);
fread(buf, len,1, f); buf[len]='\0';
// выделение предложений из текста
long i=0, fl, kol=0, s;
while(buf[i])
{
	fl=0;//флаг присутствует ли запятоя
	s=i; //начало предложения
	while(buf[i]!='.'&&buf[i]!='?'&&buf[i]!='!'){
		if(buf[i]==',')
			fl=1;
		i++;
	}
	//вывод предложения, если есть зп
	if(!fl){
		kol++;
		cout << kol << ". ";
		for(;s!=i;s++)
			cout << buf[s];
		cout << endl;
	}
	i++;

}
fclose(f); 
cout << "\n kol = " << kol;
getch(); 
return 0;
}
add
Правда предложение еще может заканчиваться на многоточие, эт тоже надо предусмотреть.

Последний раз редактировалось fker; 22.11.2009 в 14:15..
 
Ответить с цитированием