Funkcija scanf () u C ++-u koristi se za čitanje podataka sa stdina.
prototip scanf ()
int scanf (format const char *,…);
scanf()
Funkcija čita podatke iz stdin
i pohranjuje vrijednosti u pojedinim varijablama.
Definirano je u datoteci zaglavlja.
parametri scanf ()
format
: Pokazivač na niz znakova završenih nulom koji određuje kako se čita ulaz. Sastoji se od specifikatora formata koji počinju s%.Niz formatiranja ima sljedeće dijelove:
Non whitespace characters
osim% od kojih svaki troši po jedan identičan znak iz ulaznog toka. To može uzrokovati neuspjeh funkcije ako se sljedeći znak u streamu ne usporedi.Whitespace character
: Svi uzastopni razmaci razmaču se s jednim razmakom. Nadalje, ' n', ' t' i '' smatraju se istim.Conversion specification
: Slijedi sljedeći format:- Inicijalni% znak koji specificira početak
- Izborni * koji se naziva znak za suzbijanje dodjele. Ako je prisutan ovaj znak, scanf () ne dodjeljuje rezultat niti jednom argumentu koji prima.
- Izborni pozitivni cijeli broj koji specificira maksimalnu širinu polja. Određuje maksimalan broj znakova koje scanf () smije potrošiti prilikom izvršavanja pretvorbe određene trenutnom specifikacijom pretvorbe.
- Izborni modifikator duljine koji specificira veličinu argumenta koji prima.
- Specifikator formata pretvorbe.
Specifikator formata Opis % Podudara se s doslovnim% c Podudara se s jednim znakom ili više znakova. Ako je širina definirana, točno se podudara sa znakovima širine. s Podudara se s uzastopnim znakovima koji nisu razmaci. Ako je širina definirana, točno se podudara sa znakovima širine ili dok se ne pronađe prvi razmak. (postavljeno) Podudara se s praznim nizom znakova iz zadanog skupa znakova. Ako je prisutan na početku skupa, tada se podudaraju svi znakovi koji nisu u skupu. d Podudara se s decimalnim cijelim brojem. ja Podudara se s cijelim brojem. o Podudara se s nepotpisanim osminski cijelim brojem. X ili x Podudara se s nepotpisanim heksadecimalnim cijelim brojem. u Podudara se s nepotpisanim decimalnim cijelim brojem. A ili a, E ili e, F ili f, G ili g Podudara se s brojem s pomičnom zarezom. n Vraća broj do sada pročitanih znakova. str Podudara se s implementacijom definiranim slijedom znakova koji definira pokazivač.
%(*)(width)(length)specifier
- …: Ostali dodatni argumenti za primanje podataka. Javljaju se u slijedu prema specifikatoru formata.
scanf () Povratna vrijednost
- Ako je uspješna,
scanf()
funkcija vraća broj uspješno dodijeljenih argumenata za primanje. - Ako se dogodi neuspjeh podudaranja prije nego što je dodijeljen prvi argument koji prima, vraća nulu.
- Ako se neuspjeh unosa dogodi prije nego što je dodijeljen prvi argument primanja, vraća se EOF.
Primjer: Kako funkcionira funkcija 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; )
Kada pokrenete program, mogući izlaz bit će:
Pozdrav Tim, imaš 31 godinu