Книга: Язык Си - руководство для начинающих
Функция scanf( )
Функция scanf( )
Мы уже использовали ранее функцию scanf( ) и формат %s для считывания строки. Основное различие между scanf( ) и gets( ) заключается в том, как они определяют, что достигли конца строки: scanf( ) предназначена скорее для получения слова, а не строки. Функция gets( ), как мы уже видели, принимает все символы до тех пор, пока нс встретит первый символ "новая строка". Функция scanf( ) имеет два варианта. Для любого из них строка начинается с первого встретившегося непустого символа. Если вы используете формат %s, строка продолжается до (но не включая) следующего пустого символа (пробел, табуляция или новая строка). Если вы определяете размер поля как %10s, то функция scanf( ) считает нe более 10 символов или же считает до любого пришедшего первым пустого символа.
Функция scanf( ) возвращает целое значение, равное числу счи танных символов, если ввод прошел успению, или символ EОF, ее ли он встретился.
/* scanf( ) и подсчет количества */
main( )
{
static char name1[40], name2[11];
int count;
printf(" Введите, пожалуйста, 2 имени.n");
count = scanf(" %s %10s", name1, name2);
printf(" Я считал %d имен %s и %s.n", count, name1, name2);
}
Вот два примера работы программы:
Введите, пожалуйста, два имени.
Джсссика Джукс.
Я считал два имени
Джсссика и Джукс.
Введите, пожалуйста, 2 имени.
Лиза Апплеботтхэм
Я считал 2 имени Лиза и Апплеботтхэм.
Во втором примере были считаны только первые 10 символов от Апплеботтхэм, так как мы использовали формат %10s.
Если вы получаете только текст с клавиатуры, лучше применять, функцию gets( ). Она проще в использовании, быстрее и более компактна. Функция scanf( ) предназначена в основном для ввода смеси типов данных в некоторой стандартной форме. Например, если каждая вводимая строка содержит наименование инструмента, количество его на складе и стоимость каждого инструмента, вы можете использовать функцию scanf( ) или можете создать свою собственную функцию, которая выполняет проверку некоторых ошибок при вводе.
- Применение функции scanf( )
- Функции fprintf( ) и fscanf( )
- Функция close(2)
- 4.9. Функция close
- Функция fgets( )
- Функция puts( )
- 7.4 Форматный ввод (scanf)
- ВВОД-ВЫВОД ФАЙЛА: fprintf( ), fscanf( ), fgets( ) И fputs( )
- 2.1.3. Функция getopt_long()
- Группировка по встроенным функциям и UDF
- 19.1.1. Функция jQuery()
- Функция strcmp( )