Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 01_Структура программы, типы данных (3)

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
262.95 Кб
Скачать

Основы форматированного ввода-вывода

Форматированный ввод и вывод в языке Си осуществляется с помощью функций библиотеки 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