
22.11.2009, 10:48
|
|
Участник форума
Регистрация: 07.10.2009
Сообщений: 100
Провел на форуме: 135161
Репутация:
8
|
|
Нужна ваша помощь... Есть задача по поводу работы со строками:
"Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых." Есть код по по поиску и вводу предложений с вопросительным знаком, они вроде и похожи, но как не пытался под свою изменить - не получается (пишу на Turbo C++), вот её код:
Код C++
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
char bufRus[256];
char* Rus(char* mes)
{ AnsiToOem(mes, bufRus);
return bufRus;
}
int main(void)
{ char ch[2]; FILE * f;
f=fopen("D:\\FileTXT\\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 n = 0; // позиция начала предложения
long i=0, j=0, kol=0;
while(buf[i])
{ if (buf[i]== '?')
{ //вывод символов вопросительного предложения
for(j=n; j<=i;j++)
{ch[0]=buf[j]; ch[1]='\0';
cout << Rus(ch);
} kol++;
n=i+1;
}
if (buf[i]=='.' || buf[i]== '!') n=i+1;
i++;
} fclose(f); cout << endl;
cout << "\n kol = " << kol;
cout << Rus("\n Для выхода нажмите <Enter>:");
getch(); return 0;
}
помогите разобраться
|
|
|