Программирование >>  Программирование на языке c++ 

1 ... 108 109 110 [ 111 ] 112 113 114 ... 159


#inclucle <fstream.h>

#inclucle <stdlib.h>

void error(char* str1,char* str2 = )

{ cerr str1 \t str2 endl;

cerr - выходной поток exit(1); } для ошибок

void main(int argc, char* argv[]) { char c;

if (argc != 3) еггог( ошибочное число аргументов );

ifstream rd(argv[1]); исходный файл

if (ird) еггог{ нельзя открыть файл - , argv[1]);

ofstream wr(argv[2]); файл для копирования

if (Iwr) еггог( нельзя открыть файл - , argv[2]);

while (rd.get{c)) wr.put(c);

if (Ird.eofO II wr.badO) еггог( обшэя ошибка );

Пусть, например, имя этой программы filel .срр. Если вызвать ее следующим образом:

filel filel.срр file2.cpp<Enter>

то будет создана копия файла filel.срр в файле file2.cpp.

В приведенных ниже программах используется несколько новых функций, которые являются компонентами классов istream, ostream, fstream. Каждая из этих функций имеет несколько форм, выбор которых задается числом и типами аргументов. Ниже приводится краткое пояснение только используемых форм. Дополнительную информацию об этих функциях можно получить из соответствующих руководств по применению библиотечных классов и программированию.

Вторая программа по аналогии с первой позволяет вывести свой собственный исходный текст, если она записана в файле е88 1 .срр.

#include <iostream.h> #include <fstream.h> #include <stdlib.h> void main(void)

{ fstream in; описывается объект in класса fstream char line[79]; массив для хранения промежуточных данных



in.open( e88 1.cpp ,ios::in); открытие файла е88 1.срр

для чтения if(!in) проверка состояния потока

{ cerr Error\n ; вывод данных в поток

для ошибок abort{); } завершение программы при ошибке while{ in.getline(line,80) ) cout line endl;

Здесь использованы две новые функции: open и getline. Функция open открывает файл и описывается в следующем виде:

void open(const char name*,int mode, int prot=fileout::openprot);

Она имеет те же аргументы, что и рассмотренные выше конструкторы (отличием является лишь то, что второй аргумент не задается по умолчанию).

Функция getline описывается в виде: istream& getline(char *buf,int len,char delim =

Она извлекает до len символов из файла в буфер buf до тех пор, пока не встретится символ delim.

Третья программа позволяет вывести в файл некоторые значения.

#include <iostream.h> #include <fstream.h> #include <stdlib.h>

#define size sizeof(towns)/15 задание размера size строки массива towns будут записываться в файл my.txt char towns [][15] = { Lisbon , Porto , Coimbra , Aveiro }; void main(void)

{ fstream out; описывается объект out класса fstream char line[79]; массив для хранения промежуточных данных out.open( my.txt ,ios::out); открытие файла my.txt

для записи if(!out) проверка на наличие ошибок

{ cerr Error\n ;

abortO; }

for (int i=0;i<size;i-t-t-)



out.write(towns[i],15); запись строк в файл my.txt out.closeO; закрытие файла my txt

out.open( my.txt ,los::in); открытие файла my.txt

для чтения if(!out) проверка на наличие oujh6ok

{ cerr Error\n ;

abortO; } завершение программы при ошибке for (i=0;i<size;i++)

{ out.read(line,15); чтение строки из файла my.txt cout line endl; } вывод на экран } прочитанной строки

Здесь использованы две новые функции: write и read. Функция write записывает символы в файл и описывается в следующем виде:

ostream& write(const char *buf,int n);

Здесь buf - указатель на буфер, из которого берутся символы, п - число символов.

Функция read читает символы из файла и описывается в виде:

istream& read{char *buf,int n);

Здесь buf - указатель на буфер, в который записываются символы, п - число символов.

Результаты работы программы представятся в следующем виде:

Lisbon Porto Coimbra Aveiro

Последняя программа демонстрирует операции позиционирования в файле. #include <iostream.h> #include <fstream.h> #include <stdlib.h> #define size 4

char a[15] = Aveiro ; строка, которая будет записана

первой в файле



1 ... 108 109 110 [ 111 ] 112 113 114 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика