Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Функция ввода символьной строки scanf( )




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

Функция gets() принимает все символы, включая символы пробелов и знаков табуляции, до тех пор, пока не встретит символ ввода <Enter>.

Функция scanf() имеет два варианта ввода, причем для любого из них строка начинается с первого встретившегося непустого символа.

Если используется формат спецификатора %s, то окончание строки определяется по первому встретившемуся пустому символу (пробел, знак табуляции, <Enter>).

Если используется формат %s с указанием размера поля, например, %6s, то функция scanf() считает не более 6 символов или до первого пустого символа (пробел, знак табуляции, <Enter>), если он встретится раньше.

Например, при вводе символьной строки «Операционные системы» с использованием функции gets

char n1[15];

gets(n1);

printf(“%s”, n1);

вся строка будет введена полностью:

Операционные системы <Enter>

Операционные системы

а при использовании функции scanf

char n1[15];

scanf(“%s”, n1);

printf(“%s”, n1);

будет введена часть строки, до первого символа пробел:

Операционные системы <Enter>

Способ 1.

Очистка входного потока (буфера) после работы функции scanf() с помощью функции fflush(). Например,

scanf(“%d”, i); /*ввод целого числа*/

fflush(stdin); /*очистка входного потока от символа \n*/

Теперь можно использовать функцию gets().

Способ 2.

Не использовать функции ввода scanf() и gets() в одной программе. Рекомендуется использовать только функцию gets(), которая более удобна для выполнения конкретных задач. Ввод численных данных осуществляется в виде символьной строки с последующим преобразованием в числовой формат.

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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных