Лекции по проге / 01_Структура программы, типы данных (3)
.pdf
Основы форматированного ввода-вывода
Форматированный ввод и вывод в языке Си осуществляется с помощью функций библиотеки stdio.h
printf (print formatted) — вывод на экран
scanf (scan formatted) — ввод с клавиатуры
Первым аргументом обеих функций является форматная строка, указывающая что и как выводить (вводить), последующими — значения для вывода или переменные для ввода
Форматная строка содержит спецификаторы, указы- 41 вающие тип значений переменных для ввода (вывода)
Спецификаторы ввода-вывода
Форматная строка содержит спецификаторы, указывающие тип значений переменных для ввода (вывода)
иих формат:
%d — целое десятичное число
%o — целое восьмеричное число
%x — целое шестнадцатеричное число
%f, %e, %g — вещественные числа
%с — символ
%s — строка (вводится до пробела)
42 |
%% - позволяет вывести символ % |
Форматированный вывод
Функции printf указывается:
форматная строка для вывода, которая содержит сообщение с расставленными в нем спецификаторами;
значения для вывода (по количеству спецификаторов)
int x = 5;
printf("This is number %s: %d\n Bye","five", x);
|
This is number five: 5 |
43 |
Bye |
|
Форматированный ввод
Функции scanf указывается:
форматная строка для ввода, обычно состоит из одного спецификатора (не указывайте ничего лишнего!);
переменная для ввода, перед которой стоит знак & (перед строками знак & НЕ ставится)
int x; scanf("%d",&x);
//теперь х равен введенному с клавиатуры числу
44
Задание
Спросите у пользователя его возраст и введите его в целочисленную переменную.
Напечатайте сообщение сколько лет пользователю будет через год.
45
Форматированный ввод/вывод
int age = 5;
printf("Please enter you age\n"); scanf("%d", &age);
printf("Next year you will be %d years old\n",
age + 1);
Please enter you age 17
Next year you will be 18 years old
scanf("Please enter you age %d", &x);/* Ошибка!
В форматной строке функции scanf указывается ТОЛЬКО 46 спецификатор */
Это надо помнить!
Программа на языке Си строится из небольшого числа элементов: команд препроцессора, констант, переменных (идентификаторов), операций и ключевых слов
Из этих элементов с помощью знаков препинания строятся более сложные конструкции: выражения, операторы, объявления и описания
Константы, переменные и выражения обязательно имеют тип
47
Это надо помнить!
Простейший оператор языка Си состоит из выражения, заканчивающегося точкой с запятой
Символьная константа и строка из одного символа — разные величины: 'a' не равно "a"
Переменная должна быть объявлена в начале функции
Перед использованием переменной необходимо присвоить начальное значение (инициализировать)
48
Ошибки при компиляции для VS 2008 Russian
'<имя>': необъявленный идентификатор — переменная с указанным именем не была объявлена (либо опечатка в имени переменной)
Отсутствие ';' перед ... - перед указанной строкой отсутствует точка с запятой (т.е. предыдущий оператор не завершен точкой с запятой).
49
Ошибки при компиляции для VS 2005 English
'<имя>': undeclared identifier — переменная с указанным именем не была объявлена (либо опечатка в имени переменной)
missing ';' before ... - перед указанной строкой отсутствует точка с запятой (т.е. предыдущий оператор не завершен точкой с запятой)
50
