Основной задачей программирования является обработка информации,
поэтому любой язык программирования имеет средства для ввода и вывода информации. В языке Си нет операторов ввода-вывода.
Ввод и вывод информации осуществляется через функции стандартной библиотеки. Прототипы рассматриваемых функций находятся в файле stdio.h. Эта библиотека содержит функции
Функция printf() предназначена для форматированного вывода. Она переводит данные в символьное представление и выводит полученные изображения символов на экран. При этом у программиста имеется возможность форматировать данные, то есть влиять на их представление
на экране.
Общая форма записи функции printf():
printf("СтрокаФорматов", объект1, объект2, ..., объектn);
СтрокаФорматов состоит из следующих элементов:
Управляющие символы не выводятся на экран, а управляют расположением выводимых символов. Отличительной чертой управляющего символа является наличие обратного слэша '\' перед ним.
Основные управляющие символы:
Код:
int a=5;
float x = 2.78;
printf("\n Значение переменной a=%d", a);
printf("\n Значение переменной x=%f", x);
Результат работы программы
Значение переменной a=5
Значение переменной x=2.780000
При указании формата можно явным образом указать общее количество знакомест и количество знакомест, занимаемых дробной частью.
Пример
Код:
float y=1.2345;
printf("\n Значение переменной y=%10.5\n", y);
Результат работы программы
Значение переменной y= 1.23450
В приведенном примере 10 — общее количество знакомест под значение переменной; 5 — количество позиций после десятичной точки. В указанном примере количество знакомест в выводимом числе меньше 10, поэтому свободные знакоместа слева от числа заполняются пробелами. Такой способ форматирования часто используется для построения таблиц.
Ввод информации
Функция форматированного ввода данных с клавиатуры scanf() выполняет чтение данных, вводимых с клавиатуры, преобразует их во внутренний формат и передает вызывающей функции. При этом программист задает правила интерпретации входных данных с помощью спецификаций форматной строки.
Общая форма записи функции scanf( )
scanf ("CтрокаФорматов", адрес1, адрес2,...);
Строка форматов аналогична функции printf(). Для формирования адреса переменной используется символ амперсанд '&':
адрес = &объект
Строка форматов и список аргументов для функции обязательны.
Пример
Код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float y;
system("chcp 1251");
system("cls");
printf("Введите y: ");
scanf("%f",&y); // Ввод значения переменной y
printf("Значение переменной y=%f",y);
getchar(); getchar();
return 0;
}
Результат работы программы:
поэтому любой язык программирования имеет средства для ввода и вывода информации. В языке Си нет операторов ввода-вывода.
Ввод и вывод информации осуществляется через функции стандартной библиотеки. Прототипы рассматриваемых функций находятся в файле stdio.h. Эта библиотека содержит функции
- printf() - для вывода информации
- scanf() - для ввода информации.
Функция printf() предназначена для форматированного вывода. Она переводит данные в символьное представление и выводит полученные изображения символов на экран. При этом у программиста имеется возможность форматировать данные, то есть влиять на их представление
на экране.
Общая форма записи функции printf():
printf("СтрокаФорматов", объект1, объект2, ..., объектn);
СтрокаФорматов состоит из следующих элементов:
- управляющих символов;
- текста, представленного для непосредственного вывода;
- форматов, предназначенных для вывода значений переменных различных типов.
Управляющие символы не выводятся на экран, а управляют расположением выводимых символов. Отличительной чертой управляющего символа является наличие обратного слэша '\' перед ним.
Основные управляющие символы:
- '\n' — перевод строки;
- '\t' — горизонтальная табуляция;
- '\v' — вертикальная табуляция;
- '\b' — возврат на символ;
- '\r' — возврат на начало строки;
- '\a' — звуковой сигнал.
- %d — целое число типа int со знаком в десятичной системе счисления;
- %u — целое число типа unsigned int;
- %x — целое число типа int со знаком в шестнадцатеричной системе счисления;
- %o — целое число типа int со знаком в восьмеричной системе счисления;
- %hd — целое число типа short со знаком в десятичной системе счисления;
- %hu — целое число типа unsigned short;
- %hx — целое число типа short со знаком в шестнадцатеричной системе счисления;
- %ld — целое число типа long int со знаком в десятичной системе счисления;
- %lu — целое число типа unsigned long int;
- %lx — целое число типа long int со знаком в шестнадцатеричной системе счисления;
- %f — вещественный формат (числа с плавающей точкой типа float);
- %lf — вещественный формат двойной точности (числа с плавающей точкой типа double);
- %e — вещественный формат в экспоненциальной форме (числа с плавающей точкой типа float в экспоненциальной форме);
- %c — символьный формат;
- %s — строковый формат.
Код:
int a=5;
float x = 2.78;
printf("\n Значение переменной a=%d", a);
printf("\n Значение переменной x=%f", x);
Результат работы программы
Значение переменной a=5
Значение переменной x=2.780000
При указании формата можно явным образом указать общее количество знакомест и количество знакомест, занимаемых дробной частью.
Пример
Код:
float y=1.2345;
printf("\n Значение переменной y=%10.5\n", y);
Результат работы программы
Значение переменной y= 1.23450
В приведенном примере 10 — общее количество знакомест под значение переменной; 5 — количество позиций после десятичной точки. В указанном примере количество знакомест в выводимом числе меньше 10, поэтому свободные знакоместа слева от числа заполняются пробелами. Такой способ форматирования часто используется для построения таблиц.
Ввод информации
Функция форматированного ввода данных с клавиатуры scanf() выполняет чтение данных, вводимых с клавиатуры, преобразует их во внутренний формат и передает вызывающей функции. При этом программист задает правила интерпретации входных данных с помощью спецификаций форматной строки.
Общая форма записи функции scanf( )
scanf ("CтрокаФорматов", адрес1, адрес2,...);
Строка форматов аналогична функции printf(). Для формирования адреса переменной используется символ амперсанд '&':
адрес = &объект
Строка форматов и список аргументов для функции обязательны.
Пример
Код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float y;
system("chcp 1251");
system("cls");
printf("Введите y: ");
scanf("%f",&y); // Ввод значения переменной y
printf("Значение переменной y=%f",y);
getchar(); getchar();
return 0;
}
Результат работы программы: