Введення-виведення даних на консоль

Стандартні потоки бібліотеки stdio

Функції вводу-виводу розміщені в декількох бібліотеках, найбільш популярні з яких stdio, conio, iostream.

Розглянемо деякі бібліотечні функції бібліотек stdio і conio.

Після підключення бібліотеки stdio за допомогою директиви #include на початку роботи програми, автоматично відкриваються три заздалегідь визначених потоку:

stdin - вхідний потік даних

stdout - вихідний потік даних

stderr - потік помилок

За замовчуванням ці потоки пов'язані з консоллю:

stdin - з клавіатурою

stdout - з терміналом

Слід зазначити, що потоки можна перенаправити і на інші пристрої, наприклад в файл.

Читання і запис символів

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

Функцііgetchar () іgetch () повертають ціле число, в молодшому байті якого міститься код символу, відповідного самій клавіші (старший байт містить нульове значення).

Якщо при введенні виникає помилка, функції повертають константу EOF (EOF дорівнює -1).

Формат функцій введення вигладить так:

int getchar (void)

Байдуже, до якого типу (char або int) ви віднесете вводиться символ, що обумовлено двоїстістю символьних даних в мові С (про подвійність дивіться нижче по тексту). Зверніть увагу на те, що для збереження введеної інформації необхідна операція присвоювання, так як функції getch () і getchar () розглядається програмою як значення введеної змінної.

Однак на цьому схожість обох функцій закінчується, далі зупинимося на їх відмінностях. Прототип функції getchar () знаходиться в бібліотеці stdio.h. Функція getchar () вводить символ з потокаstdin, який має буфер на один рядок. тому вона нічого не повертає до тих пір, поки ви не натиснете клавішу ENTER, крім того, функція getchar () здійснює ехопечать.

Прототип функції getch () знаходиться в бібліотеці conio.h. Функція getch () вводить символ з консолі без буферизації і ехопечаті. Це означає, що символ доступний в програмі відразу ж після того, як він введений з клавіатури.

#include #include

Для того, щоб записати інформацію в перемекнную simbol1. після введення першого символу необхідно натиснути ENTER. другий значущий символ запишеться в змінну simbol2 відразу після його введення з клавіатури. Причому перший введений символ ми побачимо на екрані, а другий ні. Щоб перевірити правильність введення можна використовувати інструкцію:

printf ( "\ nsim1 =% c sim2 =% c \ n", simbol1, simbol2);

Наступний приклад показує посимвольного роботу з текстом.

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

Слід звернути увагу на те, що при роботі з текстом, використовуючи getchar (), ми не отримуємо рядок символів, так як відсутня ознака кінця рядка '\ 0'. Для того, щоб не порушувати стандартів мови, слід додати символ '\ 0' після закінчення введення текстової інформації.

void main ()

Отже, додавання '\ 0' до массівуz [] перетворює послідовність символів в рядок.

Зупинимося на подвійності символьних даних. Функції вводу-виводу для символьних даних були сконструйовані таким чином, щоб вони могли працювати і з цілочисельним типом даних. Компілятор самостійно перетворює дані типу int в літери.

Приклад: Двоїстість символьних даних

Незважаючи на те, що змінна letterопределена як целочисленная, їй може бути надано символ. Програма при цьому компілюватиметься, і виконуватися без помилок. Право вибору, чи використовувати змінні типу char або int. залишається за вами.

Розглянемо функцію виведення символу на консоль - putchar (). Незважаючи на те, що ця функція поряд з символами може отримувати і цілочисельний аргумент, їй можна передавати тільки символьні значення. Інакше кажучи, цілочисельні значення трактуються як коди символів, і, отже, на екран виводиться тільки молодший байт аргументу.

Функція putchar () повертає або код символу, або константу EOF. якщо сталася помилка.

Формат функцііputchar () виглядає так:

int putchar (int c)

Параметром функції може бути:

Схожі статті