Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПРОГР.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
1.67 Mб
Скачать
    1. Консольный ввод-вывод

Консольный ввод-вывод относится к событиям, возникающим от клавиатуры и на экране. Поскольку ввод и вывод на консоль – это типичные операции, была создана подсистема файловой системы ввода-вывода для работы исключительно с консолью. Эти функции направляют операции в стандартный ввод (stdin) и стандартный вывод (stdout) системы. Возможно перенаправить консольный ввод на другие устройства. Для простоты предполагается, что консоль – это устройство, используемое стандартными способами.

      1. Чтение и запись символов

Простейшей из стандартных функций ввода-вывода на консоль является getchar(), читающая символы с клавиатуры, и putchar(), печатающая символ на экран в текущей позиции курсора. Тем не менее getchar() имеет некоторые существенные ограничения, описываемые ниже. В Borland C добавлена функция getche(), которая читает символ с клавиатуры без ожидания нажатия клавиши <Enter>. Ниже показаны прототипы функций getchar(), getche() и putchar():

int getchar(void);

int getche(void);

int putchar(int ch);

Функция getchar() читает символ с клавиатуры и ожидает нажатие <Enter>. Функция getche() читает символ с клавиатуры и не ожидает нажатие <Enter>. Функция возвращает значение ch в случае успеха или EOF в случае ошибки (EOF – это макроопределение, означающее конец файла). Функции getchar() и putchar() требуют заголовочного файла stdio.h. Функция getche() требует заголовочного файла conio.h. Следующий пример программы вводит символы с клавиатуры и выводит их в противоположном регистре. То есть прописные символы будут выведены строчными, а строчные – прописными. Программа останавливается при обнаружении точки. Заголовочный файл ctype.h содержит прототипы функций для обработки символов.

/* переключатель регистра */

#include <conio.h>

#include <stdio.h>

#include <ctype.h>

int main(void) {

char ch;

do {

ch=getche();

if(islower(ch)) putchar(toupper(ch));

else putchar(tolower(ch));

} while (ch!=’.’); /* использование точки для остановки */

}

      1. Чтение и запись строк

Функции gets() и puts() позволяют читать строки с клавиатуры и выводить их на экран.

Функция gets() читает строку символов, введенных с клавиатуры и помещает их по адресу, указанному в аргументе. Можно набирать символы, пока не нажата клавиша < >. Символ, соответствующий клавише Enter – возврат каретки – не станет частью строки. Функция gets() имеет прототип:

char *gets(char *str);

где str – это массив символов. Функция gets() возвращает указатель на str. Следующая программа осуществляет чтение строки в массив str и выводит ее длину:

#include <stdio.h>

#include <string.h>

int main(void)

{

char str[80];

gets(str);

printf(“Length is %d”,strlen(str);

}

Имеется проблема, связанная с gets(), о которой следует знать: нельзя переходить границы массива, с которым она вызывалась. Для предыдущего примера это 80.

Функция puts() выводит передаваемый ею аргумент на экран, завершая вывод переходом на новую строку. Она имеет следующий прототип:

int puts(const char *str);

Здесь str – выводимая строка. Функция возвращает нецелое число в случае удачи и EOF в случае неудачи. Она воспринимает коды и с обратным слэшем, как и printf(), например \t воспринимается как табуляция. Вызов функции puts() требует гораздо меньше процессорного времени на реализацию, чем printf(). Она не может выводить числа и выполнять преобразование форматов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]