Файлы. Общая концепция организации ввода-вывода данных в С++. Средства класса ios, обеспечивающие точную настройку вывода, страница 19

ifstream infile (“fdata.txt”, ios::nocreate);   //создается объект infile класса ifstream

//при этом резервируются ресурсы для файла, и открывается доступ к нему

infile >> ch >>j >>d >> str1 >>str2;      

cout <<ch << endl

<< j << endl

<< d   << endl               

<< str1 << endl

<< str2 << endl;

return 0;   //при завершении программы  объект infile вызывает свой деструктор,                            //который закрывает файл, так что явным образом это делать не приходится.

}

2. Вывод в текстовый файл и считывание из него последовательности случайных чисел

В программе создается текстовый файл для вывода, в который записывается последовательность случайных чисел (каждое число выводится как строка – ввод завершается символом ‘\n’, и файл закрывается. Затем файл открывается уже для считывания, и записанная там информация выводится на экран:

#include <fstream.h>

#include <time.h>

#include <iostream.h>

#include <stdlib.h>

int main()

{

srand((unsigned) time(NULL));            //инициализация датчика случайных чисел

ofstreamoutfile (“d:/TEST.TXT”);   //создается выходной текстовый файл

if(!outfile) {cout<< "error1"<< endl;

return 1;

}

for (int i=1; i<=20; i++)    //цикл генерирования и вывода 20 случайных целых чисел

outfile << rand() %6 << ‘\n’;

outfile.close();                    // закрытие файла, т.к. не конец программы

ifstream infile (“d:/TEST.TXT”, ios::nocreate);   //открывается файл для чтения

if(!infile) {cout<< "error2"<< endl;

return 2;

}

char str[5] = {0};

while (true )           //бесконечный цикл

{

infile.getline(str, 5); //функция вводит строку из infile до разделителя по умолчанию                                                //‘\n’, т.к. указанное  5 > реальной длины строки

if (infile.eof() ) break;  //выход из цикла по концу файла

cout << str <<’\n’;  

}   

return 0;  

}

Последний цикл while (true )  можно было заменить на следующий:

while (infile.getline(str, 5))

          cout << str <<'\n'; 

Ввод из потока в виде:

int a;

while (true)                                    

       { infile >> a;

         if (infile.eof())  break;

         cout << a <<'\n';  

       }

или в виде:

int a;

while (infile >>a) 

         cout << a <<'\n';  

позволяет вводить значения в целочисленную переменную.

3. Вывод в текстовый файл и считывание из него строк

В программе создается текстовый файл для вывода, в который записываются строки, содержащие пробелы, и файл закрывается. Затем файл открывается уже для считывания, и записанная там информация выводится на экран:

#include <fstream.h>

#include <iostream.h>

int main()

{ ofstreamoutfile (“TEST.TXT”);    //создается выходной поток, открывается файл

outfile<< “aaaaaa  bbbbb  ccccc  ddddd\n”;     //вывод строк в поток 

outfile << “bbbbb   cccccc  ddddd  eeeee\n”;      

outfile << “cccccc  ddddd   eeeeee  fffffff\n”;      

cout << “file end\n”;

  outfile.close();

const int MAX = 80;

char buf [MAX];         //буфер символов

 ifstream infile (“TEST.TXT”, ios::nocreate);   //создается входной поток, открывается файл

while (!infile.eof() )                        //проверка файла на конец  

{infile.getline(buf, MAX);     //по умолчанию 3-ий параметр ‘\n’

cout << buf <<endl;  

}   

return 0;  

}

4. Вывод в текстовый файл и считывание из него строк

В программе создается текстовый файл для вывода, в который записываются 2 строки, и файл закрывается. Затем файл открывается уже для считывания, и записанная в нем информация выводится на экран:

#include <fstream.h>

#include <iostream.h>

#include <string.h>

int main()