Основы программирования на языке C



Применение функции scanf( )


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

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

Пример:

main() { int age; float assets; char fio[50]; printf("Введите ваш возраст, оклад, фамилию. \n"); scanf("%d %f", &age, &assets); scanf("%s", fio); /* & отсутствует при указании массива символов */ printf("%d $%.0f %s\n",age, assets, fio); }

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

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

  1. Отсутствует спецификация %g.
  2. Спецификации %f и %e эквивалентны. Обе спецификации допускают наличие или отсутствие знака строки цифр с десятичной точкой или без нее и поля показателя степени.
  3. Для чтения целых чисел типа short применяется спецификация %h.

Функция scanf( ) не является одной из наиболее часто используемых функций языка Си. Мы обсуждаем ее из-за универсальности.

Особенности работы с языком Си. Задание фиксированной ширины полей оказывается полезным при печати данных столбиком.

Например:




Содержание  Назад  Вперед