Многие из нас знают традиционное использование scanf. Ну, вот некоторые из менее известных фактов
Как прочитать только ту часть ввода, которая нам нужна? Например, рассмотрим некоторый входной поток, который содержит только символы, за которыми следует целое число или число с плавающей точкой. И нам нужно сканировать только это целое число или число с плавающей запятой.
То есть ,
Ввод: «это значение 100»,
Вывод: значение чтения составляет 100
Ввод: «это значение 21,2»,
Вывод: значение прочитано 21,2
|
Теперь предположим, что мы не знаем, что представляют собой предыдущие символы, но мы точно знаем, что последнее значение является целым числом. Как мы можем отсканировать последнее значение как целое число?
Приведенное ниже решение работает, только если во входной строке нет пробелов.
|
Объяснение :% * s в scanf используется для игнорирования некоторых входных данных при необходимости. В этом случае он игнорирует ввод до следующего пробела или новой строки. Аналогично, если вы напишите% * d, он будет игнорировать целые числа до следующего пробела или новой строки.
Вышеуказанный факт не может показаться полезным на первый взгляд. Чтобы понять его использование, давайте сначала посмотрим на fscanf ().
fscanf (): Устали от всего слипчивого синтаксиса для чтения из файлов? хорошо, fscanf приходит на помощь.
int fscanf(FILE *ptr, const char *format, ...)
fscanf читает из файла, на который указывает указатель FILE (ptr), вместо чтения из входного потока.
Рассмотрим следующий текстовый файл abc.txt
NAME AGE CITY abc 12 hyderbad bef 25 delhi cce 65 bangalore
Теперь мы хотим прочитать только поле города указанного выше текстового файла, игнорируя все остальные поля. Комбинация fscanf и трюка, упомянутого выше, делает это легко
|
Выход:
CITY hyderbad delhi bangalore
Упражнение: Подсчитайте количество слов, символов и строк в файле с помощью fscanf!
Эта статья предоставлена Нихилом Чакравартулой. Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Встроенные функции библиотеки для пользовательского ввода | scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s
- Проблема с scanf (), когда после нее стоит fgets () / gets () / scanf ()
- Зачем использовать fgets () вместо scanf () в C?
- scanf (% [^ / n] s, str) Vs получает (str) в C с примерами
- Использование & в scanf (), но не в printf ()
- Разница между scanf () и gets () в C
- Cin-Cout против Scanf-Printf
- Почему «&» не используется для строк в функции scanf ()?
- Возвращаемые значения printf () и scanf () в C / C ++
- Программа OpenGL для простой игры с мячом
- Программа OpenGL для простой анимации (Revolution) на C
- Предопределенные макросы в C с примерами
- Как создать графический интерфейс в программировании на C, используя GTK Toolkit
- Библиотека ctype.h (<cctype>) в C / C ++ с примерами
0.00 (0%) 0 votes