- •Содержание
- •Введение
- •1. Теоретические сведения
- •1.1. Общие сведения
- •1.2. Основные понятия языка
- •1.3. Типы данных
- •1.4. Переменные и константы
- •1.5. Ввод и вывод информации
- •1.5.1. Форматированный ввод данных
- •1.5.2. Форматированный вывод данных
- •1.6. Операции и операторы
- •1.6.1. Операции языка Си
- •1.6.2. Операторы
- •1.6.2.1. Оператор присваивания
- •1.6.2.2. Условные операторы. Оператор безусловного перехода
- •1.6.2.3. Операторы цикла
- •2. Лабораторные работы
- •2.1. Лабораторная работа 1. Линейный вычислительный процесс
- •2.2. Лабораторная работа 2. Разветвляющийся вычислительный процесс
- •2.3. Лабораторная работа 3. Оператор переключатель switch
- •2.4. Лабораторная работа 4. Циклический вычислительный процесс
- •2.5. Лабораторная работа 5. Массивы
- •2.6. Лабораторная работа 6. Матрицы
- •2.7. Лабораторная работа 7. Подпрограммы
- •Заключение
- •Библиографический список
1.5. Ввод и вывод информации
Операции ввода/вывода в языке Си организованы посредством библиотечных функций (причем их довольно много).
Чтобы библиотечные функции стали доступны программе, к ней необходимо подключить данный файл. Подключение осуществляется с помощью директивы препроцессора, помещаемой в начало программы, например:
#include <stdio.h>
Эта библиотечная функция позволяет считывать по одному символу из стандартного входного потока (с клавиатуры) с помощью функции getchar( ). Она имеет следующий прототип (т.е. описание заголовка):
int getchar(void);
Здесь определен тип единственного аргумента (void) и тип возвращаемого функцией значения (int).
Оператор ввода имеет вид:
х = getchar( );
Переменной х присваивается очередной вводимый символ.
Другая функция – putchar(х) выдает значение переменной x в стандартный выходной поток (на экран дисплея). Функция putchar( ) имеет прототип:
int putchar(int);
Объявления getchar( ) и putchar( ) сделаны в заголовочном файле stdio.h, содержащем описания заголовков библиотечных функций стандартного ввода/вывода.
Для функции getchar( ) после выбора символа необходимо нажать клавишу <Enter>. Иногда это создает определенные неудобства. Функции getch( ) и getche( ) устраняют их. Они имеют следующие прототипы:
int getch(void);
int getche(void);
Обе эти функции вводят символ сразу же после нажатия соответствующей клавиши (здесь не надо дополнительно нажимать клавишу <Enter>). Отличие между ними заключается в том, что getche( ) отображает вводимый символ на экране дисплея, а getch( ) – нет. Прототипы этих функций содержатся в файле conio.h (консольный ввод/вывод). Для их использования файл conio.h также следует подключить к программе с помощью директивы #include .
1.5.1. Форматированный ввод данных
Функция scanf( ) (прототип содержится в файле stdio.h, т.е. для использования scanf( ) необходимо подключить библиотечную функцию с помощью #include <stdio.h>) обеспечивает форматированный ввод данных. Ее можно записать в следующем формальном виде:
scanf("управляющая строка", аргумент_1, аргумент_2,...);
Аргументы scanf( ) должны быть указателями на соответствующие значения. Для этого перед именем переменной записывается символ &.
Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. В нее могут включаться:
пробелы, символы табуляции и перехода на новую строку (все они игнорируются);
спецификации преобразования, состоящие из знака %, возможно, символа * (запрещение присваивания), возможно, числа, задающего максимальный размер поля, и самого символа преобразования;
обычные символы, кроме % (считается, что они должны совпадать с очередными неизвестными символами во входном потоке).
Рассмотрим символы преобразования функции scanf( ) (указываются после символа %):
с – на входе ожидается появление одиночного символа;
d или i – на входе ожидается десятичное целое число, и аргумент является указателем на переменную типа int;
D или l – на входе ожидается десятичное целое число, и аргумент является указателем на переменную типа long;
е или Е, f – на входе ожидается вещественное число с плавающей точкой;
о – на входе ожидается восьмеричное целое число, и аргумент является указателем на переменную типа int;
О – на входе ожидается восьмеричное целое число, и аргумент является указателем на переменную типа long;
s – на входе ожидается появление строки символов;
х – на входе ожидается шестнадцатеричное целое число, и аргумент является указателем на переменную типа int;
Х – на входе ожидается шестнадцатеричное целое число, и аргумент является указателем на переменную типа long;
р – на входе ожидается появление указателя в виде шестнадцатеричного числа;
n – применяется в операциях форматирования. Аргумент, соответствующий этому символу спецификации, должен быть указателем на целое. В него возвращается номер позиции (после ввода), в которой записана спецификация %n;
u – на входе ожидается беззнаковое целое число, и аргумент является указателем на переменную типа unsigned int;
U – на входе ожидается беззнаковое целое число, и аргумент является указателем на переменную типа unsigned long;
[ ] – сканирует входную строку для получения символов [2].
Ввести целое число (int a;), символ (char b;) и вещественное число (float t;) можно так:
scanf("%d", &a);
scanf("%c", &b);
scanf("%d%c%f",&a, &b, &t);
