Vänta på användarinmatning: C Språk

Wait User Input C Language



I programmeringsspråk C finns det några ingångsfunktioner. Med hjälp av dessa funktioner kan vi vänta på användarinmatning. I denna handledning kommer vi att diskutera inmatningsfunktionerna i detaljer.

Formatsträng

Formatsträng är formatet för inmatade data. Detta format börjar med % -tecknet och följt av formatspecificatorn. Format specificer är ett specifikt tecken som används för vilken typ av data som läses.







arg1, arg2, arg3 ... är adresserna till variablerna där de inmatade data kommer att lagras.



scanf () Funktion

Syntax: int scanf (formatsträng, arg1, arg2, arg3 ...)



Några av de ofta använda specifikationerna är följande:





  • d - Används för heltalsvärden.
  • f - Används för flytande nummer.
  • c - Används för ett enda teckenvärde.
  • s - Används för strängar.

Med singel scanf () funktion kan en eller flera ingångar tas från användaren.

De scanf () funktion tar inmatning från standardingången (tangentbord) och lagrar värdet i en variabel. Funktionen väntar på användarinmatning tills användaren trycker på enter -knappen. Det angivna värdet lagras i en buffert. När du trycker på enter -knappen, scanf () funktionen börjar läsa.



Exempel 1: Integer Inmatning

//Exempel1.c
#omfatta

inthuvud(){

inti;
printf ('Ange första helhetsvärdet:');
scanf ('%d', &i);
printf ('Du angav: %d n',I);

printf ('Ange 2: a heltal:');
scanf ('%d', &i);
printf ('Du angav: %d n',I);

lämna tillbaka 0;
}

I Exempel1.c har vi sett att när vi angav heltalsvärden och tryck på enter -tangenten. De scanf () funktion tar värdet och lagrar det i variabeln. Om vi ​​anger värdena separerade med mellanslag, återgår funktionen när utrymme påträffas men värdena efter utrymme finns kvar i inmatningsbufferten. Det är därför det andra scanf () -funktionen väntar inte på användarinmatning, istället tar den indatan från bufferten.

Exempel 2: Enstaka teckeninmatning

//Exempel2.c
#omfatta

inthuvud(){

rödingc;
printf ('Ange ett tecken:');
scanf ('% c', &c);
printf ('Du angav: %c n',c);

lämna tillbaka 0;
}

I Exempel2.c har vi sett det när vi använder % c specifikatör, the scanf () funktionen tar bara ett tecken även om vi har angett mer än ett tecken.

Exempel 3: Inmatning av enstaka tecken (flera gånger)

//Exempel3.c
#omfatta

inthuvud(){

rödingc;
printf ('Ange första tecknet:');
scanf ('% c', &c);
printf ('Du angav: %c n',c);

printf ('Ange andra tecknet:');
scanf ('% c', &c);
printf ('Du angav: %c n',c);

lämna tillbaka 0;
}

Exempel 4 :

//Exempel4.c
#omfatta

inthuvud(){

rödingc;
printf ('Ange första tecknet:');
scanf ('% c', &c);
printf ('Du angav: %c n',c);

printf ('Ange andra tecknet:');
scanf ('% c', &c);
printf ('Du angav: %c n',c);

lämna tillbaka 0;
}

Exempel 5: Stränginmatning

//Exempel5.c
#omfatta

inthuvud(){

rödingnamn[femton];
printf ('Ange ditt namn: ');
scanf ('%s',namn);
printf ('Du angav: %s n',namn);

lämna tillbaka 0;
}

getc () Funktion

Syntax: int getc (FILE *stream)

getc () funktionen används för att läsa ett tecken från FILE -pekaren (ström). För att kunna läsa från tangentbordet måste vi använda stdin . Denna funktion returnerar ett heltal av läst tecken.

Exempel 6:

//Exempel6.c
#omfatta

inthuvud(){

rödingc;
printf ('Ange första tecknet:');
medan((c= getc (stdin))==' n');
printf ('Du angav: %c n',c);

medan( getc (stdin)! =' n');

printf ('Ange andra tecknet:');
medan((c= getc (stdin))==' n');
printf ('Du angav: %c n',c);

lämna tillbaka 0;
}

getchar () Funktion

Syntax: int getchar (void)

getchar () funktionen är densamma som getc () . Den enda skillnaden är den getc () funktionen kan läsa från vilken ingångsström som helst getchar () funktion läser endast från standardingång.

Exempel 7:

//Exempel7.c
#omfatta

inthuvud(){

rödingc;
printf ('Ange första tecknet:');
medan((c= getchar ())==' n');
printf ('Du angav: %c n',c);

medan( getchar ()! =' n');

printf ('Ange andra tecknet:');
medan((c= getchar ())==' n');
printf ('Du angav: %c n',c);

lämna tillbaka 0;
}

Slutsats

I den här artikeln har vi sett hur inmatningsfunktioner används på C -språk. Alla dessa funktioner tas in från inmatningsbufferten och när vi använder dessa funktioner flera gånger måste vi rensa bufferten. I annat fall kommer funktionerna inte att vänta på användarinmatning och ta input från bufferten.