//из потокаinfile, цикл работает, «пока все хорошо»; цикл завершится при создании ситуации конца файла (нажаты клавиши Ctrl+Z – поток переводится в состояние eof) при появлении символа, не соответствующего типу вводимой переменной (поток переводится в состояние fail);
} в случае, когда поток сравнивается с 0, всякий раз неявно вызывается компонентная функция operatorvoid*(), которая возвращает false, если установлен хотя бы один бит ошибки; с аргументом булевского типа (в традиционном контексте)
к этому случаю относится вызов компонентной функции eof, с помощью которой можно определить достигнут ли при чтении из файла его конец: функция eof возвращает true, если был достигнут конец файла, и false – в противном случае:
while (!infile.eof()) // пока «не конец» файла
{cout << s << endl;
infile.getline(line, len); //чтение в строку line из потока infile
}
while (true)
{ infile.getline(line, len); //чтение в строку s из потока infile
if (infile.eof()) break; //если «конец файла»
cout << line<< endl;
}
int nl =0;
while (infile.get(ch)) //или while (ch=infile.get() && ch!=EOF)
{if (ch==’\n’) nl++;
outfile.put(ch);} – подсчет количества символов ‘\n’, которым оканчиваются вводимые строки;
while (fin.getline (line, len)) { if (strstr(line, word)) { cout << “YES!” << endl; return 0;}
}
Если это забудем, то при выводе содержимого файла всегда будем получать повторение последней записи.
В программе создается текстовый файл для вывода, в который записываются символ, несколько чисел, 2 строки информации, и файл закрывается. Затем файл открывается для считывания, и записанная там информация выводится на экран:
#include <fstream.h>
#include <iostream.h>
int main()
{
char ch = ‘x’;
int j=77;
double d = 6.02;
char str1[]= “Minsk”;
char str2[]= “Brest”;
ofstreamoutfile (“fdata.txt”); //создается объект-поток outfile класса ofstream
//при этом резервируются ресурсы для файла, и открывается доступ к нему
if (!outfile) { //проверка открытияпотока outfile для вывода
cout << ”error”;
return 1;
}
outfile << ch <<j // x77
<< ‘ ‘ //вывод пробела между числами
<< d //x77 6.02
<< str1 // x77 6.02Minsk
<< ‘ ‘ //вывод пробела между строками
<< str2; // x77 6.02 Minsk Brest
outfile.close(); //закрытие файла является обязательным только при закрытии // потока раньше конца области его видимости
return 0; //при завершении программы объект outfile вызывает свой деструктор, //который закрывает файл, так что явным образом это делать не приходится.
}
Чтениесодержимого созданногофайла:
#include <fstream.h>
#include <iostream.h>
int main()
{
char ch ;
int j;
double d;
char str1[30];
char str2[30];
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.