Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функция scanf() может использоваться для чтения строк и потока ввода, для чего надо указать спецификатор формата % s. % s заставляет функцию scanf() читать символы, пока не встретится специальный символ. Прочитанные символы помещаются в массив символов, на который указывает соответствующий аргумент, и результат завершается нулевым пробелом. Применительно к scanf() специальные символы – это пробел, новая строка, табуляция, вертикальная табуляция или перевод формата. В противоположность gets(), которая читает строку, пока не встретиться возврат каретки (нажатие <Enter>), функция scanf() читает строку до первого специального символа. Это означает, что нельзя использовать scanf() для чтения строки типа «this is a test», поскольку первый пробел завершит процесс ввода.
Ввод адреса
Для ввода адреса следует использовать спецификатор формата % р. Данный спецификатор позволяет функции scanf() читать адрес в формате, определяемом архитектурой процессора. Например, следующая программа читает адрес и отображает содержимое по этому адресу:
#include <stdio.h>
int main(void)
{
char *p;
printf(“Enter an adress: ”);
scanf(“%p”, &p);
printf(“Value at location %p is %c\n”, p, *p);
}
Спецификатор %n
Спецификатор % n говорит функции scanf() о необходимости присвоения переменной, на которую указывает соответствующий аргумент, числа прочитанных символов из потока ввода на момент обнаружения % n.
Дата публикования: 2015-10-09; Прочитано: 158 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!