Ункцґ» стандартного введеннЯ/виведеннЯ

„алґ наведенґ основнґ функцґ» стандартного введеннЯ/виведеннЯ мови C.

”ункциЯ getchar()

”ормат функцґ»:

getchar();

”ункцґЯ вводить з клавґатури один символ ґ поверта№ його. ‡вертатисЯ до цґ№» функцґ» можна так:

char c; // або

int c;

c = getchar();

”ункциЯ putchar()

”ормат функцґ»:

putchar(c);

‚иводить значеннЯ змґнно» з (один символ) на стандартне вивґдний пристрґй.

”ункциЯ printf()

”ормат функцґ»:

printf(Control, arg1, arg2, ... , argn);

–е функцґЯ форматного виводу. ‚иводить на екран вмґст arg1, arg2, ... , Argn ґ поверта№ кґлькґсть виведених байтґв. Control - керуючий символьний рЯдок, в Якому знаходЯтьсЯ формати виводу на екран длЯ вґдповґдних аргументґв arg1, arg2, ... , Argn, тобто перший формат - длЯ виведеннЯ arg1, другий - длЯ arg2 ґ т. д. ‚сґ символи, що знаходЯтьсЯ мґж форматами, виводЯтьсЯ один до одного, тобто не форматуютьсЯ. –е да№ можливґсть виведеннЯ додаткового тексту длЯ полґпшеннЯ читаностґ результату виводу.

”ормати виводу задаютьсЯ так: будь-Який формат почина№тьсЯ з символу '%' ґ закґнчу№тьсЯ одним ґз символґв форматуваннЯ:

- d - аргумент перетворитьсЯ до десЯткового виглЯду (з урахуваннЯм знака);

- o - аргумент перетворитьсЯ до восьмеричному беззнаковим увазґ;

- x - аргумент перетворитьсЯ в беззнакову шґстнадцЯткову форму (з символами a, b, c, d, e, f);

- • - аргумент перетворитьсЯ в беззнакову шґстнадцЯткову форму (з символами Ђ, B, C, D, E, F);

- U - аргумент перетворитьсЯ в беззнакову десЯткову форму;

- з - аргумент розглЯда№тьсЯ Як окремий символ;

- s - аргумент розглЯда№тьсЯ Як рЯдок символґв; символи рЯдка друкуютьсЯ до тих пґр, поки не буде досЯгнутий нульовий символ або не буде надруковано кґлькґсть символґв, вказане в специфґкацґ» точностґ (про специфґкатор точностґ скажемо далґ в цьому ж роздґлґ);

- е - аргумент розглЯда№тьсЯ Як змґнна типу float або double ґ перетворитьсЯ в десЯткову форму у експонентному виглЯдґ: [-]m.nnnnnn e[+-]xx, де довжина рЯдка з n визнача№тьсЯ вказаною точнґстю. ‡а замовчуваннЯм точнґсть дорґвню№ 6;

- E - те ж, що ґ e, але з символом E длЯ експоненти;

- f - аргумент розглЯда№тьсЯ Як змґнна типу float або double ґ перетворитьсЯ в десЯткову форму у виглЯдґ: [-] Mmm.nnnnnn, де довжина рЯдка з n визнача№тьсЯ вказаною точнґстю. ‡а замовчуваннЯм точнґсть дорґвню№ 6;

- g - використову№тьсЯ або формат %e, або %f: виберетьсЯ той формат, Який дасть зображеннЯ числа з меншою кґлькґстю знакґв з урахуваннЯм задано» точностґ. Ќезначущґ нулґ не друкуютьсЯ;

- G - те ж, що ґ g, але з E длЯ експоненти, Якщо використову№тьсЯ формат e;

- n - вказґвник на цґле зґ знаком;

- p - вхґдний аргумент виводитьсЯ Як вказґвник. ”ормат залежить вґд моделґ використовувано» пам'Ятґ. ‚ґн може бути виглЯду XXXX: YYYY або YYYY (тґльки змґщеннЯ).

Њґж межами формату виводу (вґд знаку % до символу-специфґкатора типу виведеного аргументу) знаходЯтьсЯ:

[Џрапорцґ] [ширина] [. ’очнґсть] [F | N | h | l | L]

Љвадратнґ дужки означають, що елемент, що входить в них, може бути вґдсутнґм длЯ Якогось формату. Ќаприклад, Якщо виводитьсЯ десЯткове число, то точнґсть длЯ нього не ма№ сенсу.

- Џрапорцґ визначають вирґвнюваннЯ виведеного значеннЯ (по правому чи лґвому краю полЯ виводу), знаки числа, десЯтковґ крапки, кґнцевґ нулґ, вґсґмковґ ґ шґстнадцЯтковґ префґкси. Џрапорцґ мають наступний сенс:

Ґ - (дефґс) - вирґвнюваннЯ результату по лґвому краю полЯ виводу (число буде притиснуте до лґво» межґ полЯ виводу) ґ заповненнЯ полЯ виводу праворуч пробґлами. џкщо цей прапор не заданий, результат вирґвню№тьсЯ по правому краю полЯ виведеннЯ, а простґр, що залишивсЯ злґва, заповню№тьсЯ пробґлами або нулЯми;

Ґ + - перетвореннЯ результату до виглЯду зґ знаком: результат завжди почина№тьсЯ зґ знака '+' або '-';

Ґ пробґл - Якщо значеннЯ невґд'№мне, замґсть плюса виводитьсЯ пробґл. „лЯ вґдХ№мних чисел виводитьсЯ мґнус;

Ґ # - вказу№, що аргумент повинен бути перетворений з використаннЯм альтернативно» форми. –е означа№, що Якщо прапорець # використову№тьсЯ разом з символом перетвореннЯ (форматуваннЯ), то при перетвореннґ аргументу длЯ символґв c, s, d, u, i, o, x, X символ # не вплива№ на результат. „лЯ символґв e, E, f результат завжди буде мґстити десЯткову точку, навґть Якщо за точкою не слґду№ нґЯких цифр (зазвичай десЯткова крапка з'ЯвлЯ№тьсЯ, Якщо за нею слґду№ цифра). „лЯ символґв g, G результат буде Як длЯ символґв e, E, але з тґ№ю вґдмґннґстю, що хвостовґ нулґ не будуть видалЯтисЯ.

џкщо заданґ ґ пробґл, ґ знак '+', то перевагу ма№ знак '+'.

- ‘пецифґкатор ширини визнача№ розмґр полЯ длЯ вихґдного значеннЯ.

˜ирину можна задати двома способами: безпосередньо, рЯдком десЯткових цифр, ґ побґчно, через символ '*': в цьому випадку аргумент повинен мати тип int. џкщо длЯ завданнЯ ширини ви використову№те символ '*', то специфґкацґЯ ширини вказу№тьсЯ не в рЯдку Control, а в списку аргументґв перед вґдповґдним аргументом.

‘пецифґкатори ширини можуть бути такґ:

Ґ n - в цьому випадку виведетьсЯ не менше n символґв. џкщо в виведеному числґ символґв менше, нґж n, решта полЯ заповнитьсЯ пробґлами - праворуч, Якщо заданий прапорець, лґворуч - у противному випадку;

Ґ 0n (наприклад, 04) - буде виведено не менше n символґв. џкщо в виведеному числґ символґв менше, нґж n, решта полЯ заповнитьсЯ злґва нулЯми;

Ґ * (длЯ формату d) - Якщо длЯ завданнЯ ширини ви використову№те символ '*', то специфґкацґЯ ширини вказу№тьсЯ не в рЯдку Control, а в списку аргументґв перед тим аргументом, длЯ Якого вона визначена.

Џричому ширина ЯвлЯ№ собою окремий аргумент. Ќаприклад, виводимо число i = 2 по функцґ»:

printf("%*d\n", 5, i);

ђезультат буде пппп2 (де п - символ пробґлу). ’ут ширина задана рґвною 5 ґ вказана в списку аргументґв окремо, але перед тим аргументом, длЯ Якого вона визначена.

- ‘пецифґкатор точностґ зада№ число виведених символґв. ‡авданнЯ специфґкатора точностґ завжди почина№тьсЯ зґ знака точки, щоб вґдокремити його вґд специфґкатора ширини. џк ґ специфґкатор ширини, точнґсть може задаватисЯ двома способами:

Ґ безпосередньо - завданнЯм числа;

Ґ побґчно - вказґвкою символу '*'.

џкщо ви використову№те зґрочку длЯ специфґкатора точностґ, то специфґкацґЯ точностґ вказу№тьсЯ не в рЯдку Control, а в списку аргументґв перед вґдповґдним аргументом Як окремий аргумент (через кому).

Ђргумент, длЯ Якого вказу№тьсЯ специфґкацґЯ точностґ, може бути тґльки типу int.

џкщо ви використову№те зґрочку длЯ завданнЯ ширини або точностґ або длЯ завданнЯ обох специфґкацґй, то специфґкатор ширини повинен вґдразу слґдувати за специфґкатором точностґ: спочатку вказу№тьсЯ точнґсть, за нею - ширина. Ќаприклад, у виклику:

printf ("%. * d \n", 2, 5, i);

задана точнґсть 2 ґ ширина 5 длЯ цґлого числа. џкщо i = 5, то результат буде 05: точнґсть - головна у визначеннґ ширини полЯ виводу.

џк задавати точнґсть, видно з табл. 1.

Ќаприклад, длЯ j = 6.28 по printf ("%. F \n", j) отрима№мо результат - 6.

’аблица 1. ‡авданнЯ специфґкатора точностґ

‘пецифґкатор точностґ Ћпис
Ќе заданий ’очнґсть буде встановлена за замовчуваннЯм: Ґ 1 - длЯ форматґв d, o, u, x, X; Ґ 6 - длЯ форматґв e, E; Ґ всґ значущґ цифри - длЯ форматґв g, G; Ґ до ознаки кґнцЯ рЯдка - длЯ формату s; Ґ не дґ№ - длЯ формату c
’очнґсть встановлю№тьсЯ за умовчаннЯм - длЯ форматґв d, o, u, x. „есЯткова крапка не друку№тьсЯ длЯ форматґв e, E, f
n ‚иводитьсЯ n символґв або n десЯткових мґсць. џкщо в виведеному значеннґ символґв бґльше n, висновок може бути усґчений або заокруглений (це залежить вґд типу формату)
. (точка) „анґ виводЯтьсЯ Як цґлґ длЯ формату f

- Њодифґкатори розмґру, що задаютьсЯ у форматґ, визначають, Як функцґЯ ґнтерпрету№ аргумент. „ґЯ модифґкаторґв показано в табл. 2.

’аблицЯ 2. „ґЯ модифґкаторґв розмґру

‡наченнЯ ”ормат §нтерпретацґЯ
F p, s „алекий вказґвник
N n Ѓлизький вказґвник
h d, o, u, x, X short int
l d, o, u, x, X long int
l e, E, f, g, G double
L e, E, f, g, G long double
L d, o, u, x, X __int64
h c, C 1 символьний байт
l c, C 2 символьних байта
h s, S 1 строка символов по 1 байту на символ
h s, S 1 строка символов по 2 байта на символ

Ќаприклад, Якщо ми виводимо данґ типу long, ми повиннґ задавати разом з форматом d ґ модифґкатор типу l, тобто загальний виглЯд формату буде ld.

”ункциЯ scanf()

”ормат функцґ»:

scanf(Control, arg1, arg2, ... , argn);

–е функцґЯ форматного введеннЯ з клавґатури. ‡дґйсню№ посимвольно введеннЯ даних з клавґатури, перетворю№ »х у вґдповґдностґ з форматом длЯ кожного значеннЯ, зазначеному в керуючґй (форматно») символьно» рЯдку Control, ґ результат перетвореннЯ запису№ в аргументи arg1, arg2, ..., argn. ‘енс рЯдки Control той же, що ґ длЯ функцґ» printf (). ’ак Як arg1, arg2, ..., argn - це вихґднґ параметри функцґ», то при зверненнґ до функцґ» вони повиннґ задаватисЯ сво»ми адресами: ґмена масивґв задаютьсЯ ґменами, т. к. ґм'Я масиву - це покажчик на його перший елемент, а тґ аргументи , Якґ не № покажчиками, задаютьсЯ Як & arg.

”орматна рЯдок Control - це символьний рЯдок, що мґстить три типи об'№ктґв: незначущґ символи, значущґ символи ґ специфґкацґ» формату.

Ќезначущґ символи - це пробґл, знак табулЯцґ» (\t), символ переходу на новий рЯдок (\n). џк тґльки функцґЯ зустрґча№ незначущий символ в рЯдку формату, вона зчиту№, але не зберґга№ всґ наступнґ незначущґ символи до тих пґр, поки не зустрґнетьсЯ перший значущий символ (тобто пропуска№ незначущґ символи). ‡начущґ символи - це все символи коду ASCII, крґм символу '%'. џкщо функцґЯ зустрґча№ в форматно» рЯдку значущий символ, вона його зчиту№, але не зберґга№. ‘пецифґкацґЯ формату функцґ» ма№ виглЯд:

%[*][ширина][F/N] [h/l] символ_формата

ЏґслЯ символу початку формату '%' в певному порЯдку слґдують ґншґ специфґкацґ»:

- * - це необов'Язковий символ придушеннЯ введеннЯ: весь вхґдний потґк функцґЯ розглЯда№ Як сукупнґсть полґв введеннЯ - значущих символґв. џкщо в специфґкацґ» вказано символ '*', то все поле, Яке повинне в даний момент оброблЯтисЯ функцґ№ю по заданому формату, пропуска№тьсЯ.

‚веденнЯ вґдбува№тьсЯ так: у вґдповґдностґ зґ специфґкатором ширини першого формату з вхґдного потоку вибира№тьсЯ чергове поле введеннЯ (’обто значущґ символи до першого незначущого), Яке ґнтерпрету№тьсЯ у вґдповґдностґ з форматом ґ запису№тьсЯ у вґдповґдний аргумент. џкщо при цьому запитана ширина виЯвиласЯ меншою полЯ введеннЯ, то залишок полЯ оброблЯ№тьсЯ функцґ№ю по наступному формату. џкщо запитана ширина виЯвиласЯ бґльше полЯ введеннЯ, то все поле введеннЯ оброблЯ№тьсЯ за даним форматом. џкщо ж в оголошеннґ формату присутнґй символ придушеннЯ введеннЯ '*', то все поле, призначене длЯ обробки даним форматом, пропуска№тьсЯ.

- Њодифґкатори розмґру аргументу ґ символи форматуваннЯ функцґ» scanf () аналогґчнґ модифґкаторам ґ символам форматуваннЯ функцґ» printf ().

ђозглЯнемо приклад роботи функцґ» scanf (). Џрипустимо, задано:

int i; float x; char m[100];

scanf("%2d %f %*d %2s", &i, &x, m);

Ќа клавґатурґ набира№мо послґдовнґсть:

56789 0123 45а72

џк буде йти введеннЯ?

“ прикладґ № три полЯ введеннЯ: 56789, 0123 ґ 45а72. ”ункцґЯ у вґдповґдностґ з першим форматом (%2d) вибира№ з першого полЯ першґ два символу. ”ункцґЯ ґнтерпрету№ »х Як десЯткове число ґ привласню№ значеннЯ першому аргументу: i = 56. “ першому полґ залишилисЯ необробленими символи 789. ‚они потраплЯють в роботу функцґ» по другому формату %f. „ругий аргумент отрима№ значеннЯ x = 789. „алґ повинне оброблЯтисЯ поле 0123 по третьому формату, але в ньому № символ придушеннЯ. ’ому поле пропуска№тьсЯ ґ почина№ оброблЯтисЯ поле 45а72 за форматом %2s. ‡ цього полЯ будуть обранґ тґльки першґ два символи ґ рЯдок m отрима№ значеннЯ '45'.

”ункциЯ sprintf()

”ормат функцґ»:

sprintf(string, Control, arg1, arg2, ... , argn);

–Я функцґЯ аналогґчна printf (), за винЯтком того, що результат сво№» роботи вона виводить не на стандартний пристрґй виводу, а в рЯдок string.

–е дозволЯ№ збирати в один рЯдок данґ абсолютно рґзних типґв.

”ункциЯ sscanf()

”ормат функцґ»:

sscanf(string, Control, arg1, arg2, ... , argn);

–Я функцґЯ аналогґчна scanf (), за винЯтком того, що вхґднґ данґ длЯ »» роботи надходЯть не зґ стандартного пристрою введеннЯ, а з рЯдка string. –е дозволЯ№ видґлЯти в рЯдку рґзнґ групи даних абсолютно рґзних типґв ґ помґщати »х в окремґ змґннґ.

”ункциЯ cprintf()

”ормат цґ№» функцґ» совпадает с форматом функции printf():

сprintf(Control, arg1, arg2, ... , argn);

Џараметри аналогґчнґ параметрам printf (). Ђле длЯ забезпеченнЯ роботи цґ№» функцґ» слґд пґдключити до програми файл conio.h, виконавши:

#include <conio.h>

џкщо функцґЯ printf () виводить данґ туди, куди призначено stdout (див. початок розд. "‘тандартний ввґд / вивґд"), то функцґЯ cprintf () завжди виводить данґ на консоль (на це вказу№ символ 'з' на початку »» ґменґ), тобто на екран.

Ќа вґдмґну вґд printf (), функцґЯ cprintf () не переводить символ '\n' в пару "\r \n" - поверненнЯ каретки та переведеннЯ рЯдка (замґсть '\n' треба вказувати обидва цих символу). Љрґм того, символи табулЯцґ» '\t' не перетворюютьсЯ в пробґли.

–ю функцґю не рекоменду№тьсЯ використовувати длЯ додаткґв Win32 або Win32 GUI. Ђле »» можна використовувати длЯ видачґ на екран кольорових повґдомлень. „лЯ цього треба скористатисЯ функцґЯми textcolor () (встановити колґр тексту) ґ textbackground () (встановити колґр фону). Љольори задаютьсЯ в №диних аргументах цих функцґй, виходЯчи з табл. 3.

’аблицЯ 3. ‡авданнЯ кольору

Љолґр ‘имвольна константа ‡наченнЯ аргумента
—орний BLACK
‘инґй BLUE
‡елений GREEN
Ѓлакитний CYAN
—ервоний RED
Џурпурний MAGENTA
Љоричневий BROWN
‘вґтло-сґрий LIGHTGRAY
’емно-сґрий DARKGRAY
‘вґтло-синґй LIGHTBLUE
‘вґтло-зелений LIGHTGREEN
‘вґтло-блакитний LIGHTCYAN
‘вґтло-червоний LIGHTRED
‘вґтло-пурпурний LIGHTMAGENTA
†овтий YELLOW
Ѓґлий WHITE
ЊиготґннЯ кольору BLINK

џк аргумент можна брати Як символґчнґ константи, так ґ »х числовґ значеннЯ.

™об задати, наприклад, блиманнЯ кольору, слґд виконати:

textcolor(CYAN + BLINK);

або:

textcolor(3 + 128);

Ќаведемо приклад програми з функцґ№ю cprintf () (лґстинг 5).

Ґстинг 5

//--------------------------------------------------------------------#include <vcl.h>

#include <conio.h>

#include <stdio.h>

int main(void) {

/* Џриклад 1: обов'Язкове використаннЯ символу поверненнЯ каретки (\r) ґ символу перекладу рЯдка (\n) */

/* Ћчистка екрану */

clrscr ();

/* ‘твореннЯ вґкна длЯ тексту */

window (10, 10, 80, 25);

/* ‚иведеннЯ тексту у вґкно */

cprintf ("Hello world \ r \ n");

/* ‡атримка: очґкуваннЯ введеннЯ з клавґатури */

getch ();

/* Џриклад 2: виведеннЯ 9-ти рЯдкґв з рґзними кольорами тексту ґ фону */

int i, j;

clrscr ();

for (i = 0; i <9; i + +) // 9 кольорґв тексту {

for (j = 0; j <80; j++)

cprintf ("C");

printf ("\ n");

textcolor (i + 1); // колґр тексту

textbackground (i); // колґр фону

}

getch ();

clrscr ();

// Џриклад 3: миготґннЯ

textbackground (YELLOW);

textcolor (CYAN + BLINK); // миготґннЯ

cprintf ("Hello! \r \n");

getch ();

return 0;

}

”ункциЯ gets()

”ормат функцґ»:

gets(s);

‚водить рЯдок символґв з клавґатури ґ запису№ його в рЯдок s, Який може бути оголошений Як char *s або char s[].

”ункциЯ puts()

”ормат функцґ»:

puts(s);

‚иводить вмґст рЯдка s на пристрґй стандартного виводу (екран).

ђЯдок s може бути оголошений Як char * s або char s [].

”ункциЯ cputs()

”ормат функцґ»:

сputs(s);

‚иводить вмґст рЯдка s на екран (s може бути оголошена Як char * s або char s []). –ю функцґю можна використовувати длЯ виводу на екран кольорових текстґв. Љолґр виведених символґв зада№тьсЯ за допомогою функцґ» textcolor (), а колґр фону - функцґ№ю textbackground () (див. також коментар до функцґ» cprintf ()). „лЯ роботи функцґ» треба пґдключити файл conio.h.

”ункциЯ gotoxy()

”ормат функцґ»:

gotoxy(x, y);

Џереводить курсор у точку з координатами (x, y) в поточному вґкнґ на екранґ, де х - номер стовпцЯ екрану, y - номер рЯдка екрана. Ћбидвґ змґннґ повиннґ бути описанґ Як int (не в пґкселах!). „лЯ роботи функцґ» треба пґдключити файл conio.h. Џриклад програми з функцґ№ю gotoxy () приведений в лґстингу 6.

Ґстинг 6

//--------------------------------------------------------------------#include <vcl.h>

#pragma hdrstop

#include <conio.h>

//--------------------------------------------------------------------#pragma argsused

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

clrscr();

gotoxy(35, 12);

cprintf("Hello, world");

getch();

}

”ункциЯ clrscr()

”ормат функции:

clrscr();

Ћчища№ екран ґ зафарбову№ його кольором, заданим функцґ№ю textbackground (). Џриклад програми з цґ№ю функцґ№ю приведений в лґстингу 7.

Ґстинг 7

//--------------------------------------------------------------------#include <vcl.h>

#pragma hdrstop

#include <conio.h>

//--------------------------------------------------------------------#pragma argsused

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

textcolor(YELLOW);

textbackground(YELLOW);

clrscr();

gotoxy(35, 12);

cprintf("Hello, world");

getch();

}

”ункциЯ window()

”ормат функции:

window(x1, y1, x2, y2);

”ункцґЯ створю№ вґкно на екранґ, де (x1, y1) - координати лґвого верхнього кута вґкна, (x2, y2) - правого нижнього. ‚сґ параметри повиннґ бути описанґ Як int.

‚веденнЯ/введеннЯ у мовґ ‘++

Агальнґ положеннЯ

‚веденнЯ ґ виведеннЯ в ‘++ органґзований за допомогою так званих поточних класґв, що мґстЯть данґ ґ методи роботи з файлами по введенню/виведенню.

Џотоковґ класи походЯть вґд спґльного предка - класу ios ґ тому успадковують його функцґональнґсть. ™об почати писати програму з використаннЯм введеннЯ/виведеннЯ на мовґ ‘++, слґд обов'Язково виконати в програмґ:

#include <fstream>

Љлас fstream № нащадком класґв istream ґ ostream. –ґ ж класи № батьками класґв ifstream ґ оfstream. Љлас fstream використову№тьсЯ длЯ органґзацґ» введеннЯ/виведеннЯ (тобто читаннЯ-запису) в один ґ той же файл.

Љласи ifstream, оfstream - длЯ органґзацґ» вґдповґдно введеннЯ (читаннЯ) файлу ґ виведеннЯ (записи в файл). “ свою чергу, екземплЯрами класґв istream, ostream № cin, cout, cerr, за допомогою Яких здґйсню№тьсЯ так зване стандартне введеннЯ/виведеннЯ - введеннЯ зґ стандартного ввґдного пристрою, Яким за замовчуваннЯм № клавґатура, ґ виведеннЯ на стандартний вивґдний пристрґй, Яким за замовчуваннЯм № екран. ’аким чином, включеннЯ в програму класу fstream виЯвлЯ№тьсЯ достатнґм длЯ органґзацґ» Як стандартного, так ґ файлового введеннЯ/виведеннЯ.

”айлове введеннЯ/виведеннЯ органґзоване за допомогою перевизначених в потокових класах операцґй включеннЯ (<<) та вилученнЯ (>>). ђанґше ми бачили, що це операцґ» зсуву влґво ґ зсуву вправо бґтґв у змґннґй типу int, але в поточних класах ‘++ вони знайшли нову функцґональнґсть.

™об працювати з файлом, його спочатку слґд вґдкрити - зв'Язати зґ спецґальною структурою, в Якґй задаютьсЯ характеристики файлу (розмґр буфера введеннЯ/виведеннЯ, стан файлу, останнґй прочитани» запис ґ т. п.). ‡в'Язок цей викону№тьсЯ за допомогою функцґ» open (), що входить в один з класґв, Який визнача№ введеннЯ/виведеннЯ (fstream, istream, ostream). ’ому, щоб виконати таку функцґю, слґд спочатку створити екземплЯр вґдповґдного класу, щоб отримати доступ до цґ№» функцґ». џкщо ми, наприклад, хочемо виконувати виведеннЯ у файл (тобто запис у нього), то слґд створити екземплЯр класу ostream:

ostream exp;

ґ потґм виконати функцґю exp.open (). “ дужках повиннґ бути вказанґ параметри цґ№» функцґ»: ґм'Я файлу ґ спосґб вґдкриттЯ файлу, в Якому задаютьсЯ вґдомостґ про те, Як користувач збира№тьсЯ працювати з файлом: читати його, писати в нього або робити щось ще.

ЏґслЯ того Як файл вґдкритий длЯ читаннЯ або запису, використовують операцґ» включеннЯ-вилученнЯ (<<, >>). џкщо використовувати приклад з примґрником exp класу ostream, то можна записати, наприклад:

exp << "рЯдок тексту" << i << j << endl;

’ут i, j - деЯкґ змґннґ (наприклад, int i; float j;), endl - кґнець виводу ґ перехґд на новий рЯдок.

ЏґслЯ того Як робота з файлом закґнчено, слґд закрити файл, щоб розґрвати зв'Язок з тґ№ю структурою, з Якою файл був пов'Язаний при його вґдкриттґ. –е необхґдно, щоб дати можливґсть ґншим файлам "вґдкриватисЯ".

–ей акт викону№тьсЯ за допомогою методу close () того ж екземплЯра класу, Який ми створювали, щоб виконати функцґю open (). “ нашому випадку слґд було б написати:

exp.close ();