Функцията scanf () в C ++ се използва за четене на данните от stdin.
scanf () прототип
int scanf (формат const char *, …);
Най scanf()
функция чете данните от stdin
и магазини ценности в съответните променливи.
Той се определя в заглавния файл.
Параметри на scanf ()
format
: Указател към символен низ с край до нула, който указва как да се чете въведеното. Състои се от спецификатори на формат, започващи с%.Форматният низ има следните части:
Non whitespace characters
с изключение на%, всеки от които консумира един идентичен символ от входния поток. Това може да доведе до неуспех на функцията, ако следващият символ в потока не се сравнява равен.Whitespace character
: Всички последователни пробели се третират като единични пробели. Освен това „ n“, „ t“ и „“ се считат за еднакви.Conversion specification
: Следва следния формат:- Първоначален% знак, който определя началото
- По избор *, наречен знак за потискане на заданието. Ако този знак присъства, scanf () не присвоява резултата на нито един аргумент за получаване.
- Незадължително положително цяло число, което указва максималната ширина на полето. Той определя максималния брой знаци, които scanf () е разрешено да използва, когато извършва преобразуването, посочено от текущата спецификация на преобразуване.
- Незадължителен модификатор на дължина, указващ размера на приемащия аргумент.
- Спецификатор на формат за преобразуване.
Форматизатор Описание % Съвпада с буквалния% ° С Съвпада с един или няколко знака. Ако ширината е дефинирана, съвпада точно с ширината. с Съвпада с последователни символи без интервали. Ако ширината е дефинирана, съвпада точно с символите за ширина или докато не бъде намерено първото празно пространство. (комплект) Съответства на непразна последователност от символи от дадения набор от символи. Ако присъства в началото на набора, тогава всички символи, които не са в набора, са съвпадащи. д Съответства на десетично цяло число. i Съвпада с цяло число. o Съответства на неподписано осмично цяло число. X или x Съответства на неподписано шестнадесетично цяло число. u Съответства на неподписано цяло десетично число. A или a, E или e, F или f, G или g Съвпада с число с плаваща запетая. н Връща броя на прочетените до момента знаци. стр Съответства на дефинирана от изпълнение последователност от символи, дефинираща указател.
%(*)(width)(length)specifier
- …: Други допълнителни аргументи за получаване на данни. Те се появяват в последователност според спецификатора на формата.
scanf () Върната стойност
- При успех
scanf()
функцията връща броя на получените аргументи, успешно присвоени. - Ако възникне съвпадение на грешка преди да бъде присвоен първият получаващ аргумент, връща нула.
- Ако възникне неуспех при въвеждане преди да бъде присвоен първият получаващ аргумент, EOF се връща.
Пример: Как работи функцията scanf ()
#include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )
Когато стартирате програмата, възможният изход ще бъде:
Здравей Тим, на 31 години си