Кодам преобразований d, u, o,
Кодам преобразований d, u, o, x, i может предшествовать символ l или h, означающий, что соответствующий аргумент указывает на переменную типа long или short, а не int. Аналогично, кодам e, f, g может предшествовать символ l, означающий, что соответствующий аргумент указывает на переменную типа double, а не float. Для остальных кодов преобразований модификаторы l и h игнорируются.
Функция scanf завершается по концу файла, при исчерпании формата или при обнаружении в потоке ввода символа, противоречащего формату. В последнем случае символ-нарушитель остается непрочитанным в потоке ввода.
Функция scanf возвращает число успешно введенных и преобразованных величин; это число может оказаться нулем, если слишком рано обнаружилось несоответствие с форматом. Если ввод закончился без конфликтов и преобразований, результат равен EOF.
ПРИМЕРЫ
В результате вызова
nt n; float x; char name[50]; = scanf("%d%f%s", &i, &x, name);
при наличии во входном потоке символов
5 54.32E-1 Bill
будет присвоено: переменной n - значение 3, переменной i - значение 25, переменной x - значение 5.432, а в массив name будет занесено Bill\0.
После вызова
nt i,j; float x; char name[50]; void)scanf("%i%2d%f%*d %[0-9]", &j, &i, &x,name);
при наличии во входном потоке символов
11 56789 0123 56a72
будет присвоено: переменной j - значение 9, переменной i - значение 56, переменной x - значение 789., последовательность 0123 будет пропущена, а в массив name будет занесено 56\0. Если после этого вызова последует вызов getchar [см. ], то будет прочитан символ a.
В результате вызова
nt i, j, s, e; char name[50]; void)scanf("%i %i %n%s%n", &i, &j, &s, name, &e);
при наличии во входном потоке
x11 0xy johnson
будет присвоено: переменной i - значение 17, переменной j - значение 0, переменной s - значение 6, в массив name будет занесено xy\0, а переменной e присвоено значение 8. Таким образом, длина заполненной части массива name равна e - s = 2. При следующим за этим вызове getchar [см. ] будет прочитан пробел.
СМ. ТАКЖЕ
, , , , .
ДИАГНОСТИКА
Описанные функции возвращают значение EOF при исчерпании потока ввода, или число успешно введенных и преобразованных величин.
СЮРПРИЗЫ
Заключительные пробельные символы (включая перевод строки) остаются в потоке ввода непрочитанными, если только они не были явно затребованы форматом.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий