Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
первая часть.doc
Скачиваний:
26
Добавлен:
07.02.2016
Размер:
2.19 Mб
Скачать

Рядки і числові типи даних

Часто доводиться перетворювати рядок у число або число в рядок. Функції, що виконують такі перетворення, оголошені в <stdlib.h>. Рядки – вихідні дані або результати перетворення – мають вигляд числових літералів. От деякі з функцій:

Int atoi (const char *s) – перетворює рядок s у int-число. Повертає 0, якщо перетворення неможливе.

double atof (const char* s) – перетворить s у double-число.

char* itoa (int v, char* s, int b) – перетворить число v у рядок s; повертає покажчик на s; параметр b – підстава системи числення, у якій буде представлене число. Значення b повинне бути в діапазоні 2–36.

char * gcvt (double v, int n, char* s) – перетворить число v у рядок s. Значення n – це кількість значущих цифр. Якщо можливо, число перетвориться у форму з фіксованою точкою, інакше – у форму з плаваючою.

Приклади використання цих функцій, а також інформацію про інші перетворюючі функції можна одержати, користуючись довідником системи програмування.

Робота з файлами

Функції для роботи з файлами оголошені в <fstream.h>. Оскільки клас fstream успадковує властивості класів iostream і ios, при роботі з файлами можна використовувати усі функції-члени і данні-члени цих класів. Файловий ввід-вивід (вивід) досягається при зв'язуванні вхідного (вихідного) потоку з файлом за допомогою змінної класу istream або fstream (перемінної класу оstream або fstream – для вводу).

Форма операторів визначення потокових змінних:

fstream ім'я_потоку(“ім'я_набору_даних”, ios::in) – для вводу,

fstream ім'я_потоку(“ім'я_набору_даних”, ios::out) – для виводу.

При такому визначенні потокових змінних відкриваютьсяпотоки. Якщо відкриття неможливе, потокова змінна має значення нуль.

Для файлів, зв'язаних з потоками, можна використовувати операції вставки і вилучення – з їх допомогою виконують форматований ввід-вивід. Неформатований (не викидає пробіли і не виконуює перетворення з зовнішньої форми представлення даних у внутрішню форму) ввід може бути виконано за допомогою наступних функцій – членів:

in get () – витягає з вхідного потоку і повертає один символ або EOF , якщо досягнуто кінець файлу.

istream& get (char&) – витягає з вхідного потоку і повертає один символ. Має нульове значення, якщо кінець файлу не досягнений.

istream& get (char * buf, int n, char delim = ‘\n’) – читає символи з потоку, поки не буде прочитано n символів або не зустрівся обмежник delim. Обмежник залишається в потоці і не включається в лічену послідовність.

istream& getline (char * buf, int n, char delim = '\n') – читає символи з потоку. Обмежник не включається в лічену послідовність. На відміну від get, обмежник витягається з потоку.

istream& read (char* buf, int n) – читає n байтів з потоку в двоїчному режимі.

ostream& put (char) – записує окремий символ у потік.

ostream& write (const char* buf, int n) – записує в потік n символів з буфера.

ostream& flush () – запис змісту потоку, тобто примусовий запис, незалежно від ступеня заповнення внутрішнього буфера потоку.

void open (char* dataname, int mode, int prot = filebuf::openprot) – відкриває набір даних і зв'язує з раніше створеною змінною потоку. Режим «для введення» задається як ios::in, режим для виводу – як ios::out, режим «для додавання» – як ios::app. Для відкриття потоку в двоїчному режимі константа ios::in поєднується (порозрядним АБО) з константою ios::binary. Приклад застосування open – у додатку.

void close () – закриває файл і відкріплює його від потоку. Оскільки звичайно файли закриваються автоматично, close застосовується, якщо файл потрібно «перевідкрити» в іншому режимі.

Функція int eof () повертає ненульове значення, якщо в потоці виявлена ознака кінця файлу.