МК
Маша Кондукторова

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

Вот код:
#include
#include
#include
int main()
{
clrscr();
ifstream fin("text.txt", ios::in | ios::nocreate);
if (!fin)
{
cout<<"Oshibka otkritija faila"< getch();
return 1;
}
fin.seekg(0, ios::end);
long len=fin.tellg();
char *buf=new char [len+1];
fin.seekg(0, ios::beg);
fin.read(buf, len);
buf[len]='\0';
long n=0, i=0, j=0, flag=-1;
while (buf[i])
{
if (buf[i]=='"')
if (flag<0)
flag=i;
else
{
for (j=flag; j<=i; j++)
cout< flag=-1;
}


if (buf[i]=='.' || buf[i]=='!')
n=i+1;
i++;
}
fin.close();
cout< getch();
return 0;
}
Собственно, вопрос: Объясните подробно, что делает эта часть программы и вообще, что такое flag?
long n=0, i=0, j=0, flag=-1;
while (buf[i])
{
if (buf[i]=='"')
if (flag<0)
flag=i;
else
{
for (j=flag; j<=i; j++)
cout< flag=-1;
}

АМ
Аннет Максимова

О боже мой, убейте того кто это писал. Это пиздец, а не код.

В ответах код выглядит криво, поэтому вот тут прокоментировал более наглядно:

http://ideone.com/ck27Hs

А теперь для примера та же программа, но написанная короче, проще, понятней и без использования устаревших конструкций типа ios::nocreate которые даже не комилируются в современных компиляторах:

http://ideone.com/UCbzC8

Похожие вопросы
(Borland pascal) Написать программу, которая считывает строку с группами символов и выводит строку лиз групп символов...
Написать программу, которая выводит на экран все двухзначные числа, делящиеся на 3 или на 5
Borland C++. Не выводится текст в консольном окне. Что не так? (код...)
Pascal.Задача: Написать программу, которая выводит на экран мое имя и фамилию.
Вывод данных на экран C++
Помогите написать программу на Паскале абс, которая считывает дату с компьютера и выводит её на экран.
помогите написать программу в паскале которая будет выводить на экран треугольник
Помогите написать текст программы в Visual Basic.ПОЖАЛУЙСТА!!!! Написать программу, которая выводит на экран Да или Нет
Типизированные файлы. какой вид имеет программа вывода на экран содержимого типизированного файла?
Написать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000.