· istream& get(unsignet char *array, char = '\n');
· istream& get(unsignet char& c); // чтение одного символа
· int peek(); // возвращает код следующего символа потока или EOF , если поток пуст, // но оставляетт этот символ во входном потоке
// Цикл ввода до конца строки, т.е. до нажатия <ENTER>
{
char c;
while (cin.peek( )!= '\n') { cin.get(с); put(c); }
· istream& putback(char c); // возвращает последний считанный символ потока
// обратно в поток
// извлечение из потока и пропуск n символов
· istream& ignore (int n = 1, int EOF )
// чтение заданного количества символов в массив
· istream& read (unsigned char* array, int n);
Функции доступа к потоку
· istream& seekg (long pos) – устанавливает чтение из потока
· istream& seekg (long pos, seek_dir dir) – перемещение позиции чтения вдоль потока в направлении, заданном параметром dir, который может принимать значения:
ios :: beg - от начала потока
ios :: cur – от текущей позиции
ios :: end – от конца потока
· long tellg(); - определяет текущую позицию чтения из потока
· long tellp ( ) ; - определяет текущую позицию записи в поток
· ostream& seekp (long pos, seek_dir dir) – определяет относительную позицию записи в поток
· seekp (long pos); - определяет абсолютную позицию записи в поток
Файловый ввод-вывод
Файловые потоки соответствующих типов – это объекты классов:
ofstream outfile // - выходной файловый поток
ifstream infile // - входной файловый поток
fstream iofile // двунаправленный файловый поток
// присоединение файлового потока к файлу
· void open (const char * filename, int mode, int access);
filename – имя файла
int access – режим доступа
int mode – флаги, определяющие режим работы с открываемым файлом. Они определены в модуле ios:
ios:: open_mod {
in = 0x01 – открыть файл для чтения
out = 0x02 – открыть файл для записи
ate = 0x04 – позиционировать в конец файла при открытии
app = 0x08 – режим добавления в конец файла
nocreate = 0x20 – не открывать новый файл
noreplase = 0x40 – не открывать существующий файл
binary = 0x80 - открыть файл для двоичного обмена
}
access =
0 - обычный файл, со свободным доступом
1 - файл, только для чтения
2 - скрытый файл
4 - системный файл
8 - архивный файл.
· close( ); // очистить буфер потока, отсоединить файл от потока и закрыть файл
· eof( ); // определяет, был ли достигнут конец файла при вводе (0 - достигнут)
· good( ); // возвращает ненулевое значение, если поток не испорчен, не достигнут
// конец файла и следующая операция может быть выполнена
// Из файла считываются строки, либо целые числа, которые могут следовать в произвольном порядке:
#include < iostream.h>
#include < fstream.h>
#include < stdlib.h >
void main ( )
{
char str[80], *p;
ifstream in;
in.open ("test.dat");
if (!in.good){cout << "ошибка\n", exit (1);}
do
{
p = str;
ch = in.peek ( );
if(isdigit(ch))
{
while(isdigit(*p=in.get())) p++;
in.putback (*p); //возврат в поток
*p = '\0';
cout << "целое число" : "<< atoi (str);
}
else if (isalpha (ch))
{
while (isalpha (*p = in. get ( )))p++;
in.putback (*p); *p = '\0';
cout << "строка: " << str;
}
else in.get ( ); cout << '\n';
}
while ( ! in. eof ( ) ));
in. close ( );
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.