Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ_ПО_ПРОГРАММИРОВАНИЮ_ПРЕПОД_3403_220301.doc
Скачиваний:
27
Добавлен:
06.11.2018
Размер:
845.31 Кб
Скачать

6.2 Функция форматированного ввода scanf().

Так же как для функции printf(), для функции scanf() указываются управляющая строка и следующий за ней список аргументов. Основное различие двух этих функций заключается в особенности данного списка. Функция printf() использует имена переменных, константы и выражения, в то время функция scanf() – использует только указатели на переменные.

Необходимо помнить два правила:

  1. Если нужно ввести некоторое значение и присвоить его переменной одного из основных типов, то перед именем nepеменной требуется писать символ &.

  2. Если нужно ввести значение строковой переменной, использовать символ & не нужно.

Функция scanf() использует практически тот же набор символов спецификации преобразования, что и функция printf(). Имеются некоторые небольшие отличия и особенности, например:

  • Отсутствует спецификация %g.

  • Для чтения целых чисел типа short применяется спецификация %h.

/* ПРОГРАММА:

regulator_scanf.c – функция scanf() – регулятор входного потока данных.

*/

/*#############################################*/

/*============================= include */

#include<stdio.h>

/*============================= main() */

main()

{/*.---------------------------.begin main() */

int age; /* возраст */

float assets; /* состояние */

char pet[30]; /* название животного */

printf(" Укажите Ваш возраст, состояние и любимое животное.\n" );

scanf(" %d %f" , &age, &assets);

/* ввод возраста и состояния через пробел или знак табуляции */

scanf(" %s", pet); /* ввод названия животного */

/* & отсутствует при указании массива символов */

printf("%d $%.0f %s\n", age, assets, pet);

return 0;

}/*.---------------------------.end main() */

/*#############################################*/

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.

Укажите Ваш возраст, состояние и любимое животное.

82 8345245.19

носорог

82 $8345245 носорог

ПОЯСНЕНИЯ К ПРОГРАММЕ.

  • Функция scanf() использует некоторые специальные знаки (пробелы, символы табуляции и символ "новая строка") для разбиения входного потока символов на отдельные поля. Она согласует последовательность спецификаций преобразования с последовательностью полей, опуская упомянутые специальные знаки между ними.

  • Спецификация %с, обеспечивает чтение каждого следующего символа даже тогда, когда это "пустой символ".

***************************************************************

7. Операции и операторы.

ОСНОВНЫЕ ОПЕРАЦИИ ЯЗЫКА СИ.

=

Присваивает величину справа от знака переменной слева от него

+

Прибавляет величину справа от знака к величине слева от него

-

Вычитает величину справа от знака из величины слева от него

-

Унарная операция, изменяет знак величины справа от знака

*

Умножает величину справа от знака на величину слева от него

/

Делит величину слева от знака на величину справа от него. Результат усекается, если оба операнда целые числа

%

Дает остаток при делении величины слева от знака на величину справа от него (только для целых чисел)

++

Прибавляет 1 к значению переменной. Слева от знака – префиксная форма. Справа от знака - постфиксная форма

--

Вычитает 1 от значения переменной. Слева от знака - префиксная форма. Справа от знака - постфиксная форма

sizeof

Дает размер операнда, стоящего справа, в байтах. Операнд может быть спецификацией типа, заключенного в круглые скобки, как, например, sizeof (float), или именем конкретной переменной, массива и т. п., например sizeof name.

(тип)

Операция приведения: приводит величину, стоящую справа, к типу, определяемому ключевым словом (или словами) в скобках. Например, (float)9 преобразует целое число 9 в число с плавающей точкой 9.0.