Oodake kasutaja sisestust: C keel

Wait User Input C Language



C programmeerimiskeeles on mõned sisendfunktsioonid. Neid funktsioone kasutades võime oodata kasutaja sisendit. Selles õpetuses käsitleme sisendfunktsioone üksikasjalikult.

Vormindage string

Vormingstring on sisestatud andmete vorming. See vorming algab märgiga % ja sellele järgneb vormingu täpsustaja. Vormingu täpsustaja on konkreetne märk, mida kasutatakse seda tüüpi andmete jaoks, mida loetakse.







arg1, arg2, arg3… on muutujate aadressid, kuhu sisestatud andmed salvestatakse.



scanf () Funktsioon

Süntaks: int scanf (vormindage string, arg1, arg2, arg3 ...)



Mõned sageli kasutatavad spetsifikatsioonid on järgmised.





  • d - Kasutatakse täisarvuliste väärtuste jaoks.
  • f - kasutatakse ujuva numbri jaoks.
  • c - Kasutatakse ühe tähemärgi väärtuse jaoks.
  • s - Kasutatakse keelpillide jaoks.

Üksiku kasutamine scanf () funktsiooni, saab kasutajalt võtta ühe või mitu sisendit.

The scanf () funktsioon võtab sisendi tavalisest sisendist (klaviatuur) ja salvestab väärtuse muutujale. Funktsioon ootab kasutaja sisestust, kuni kasutaja vajutab sisestusklahvi. Sisestatud väärtus salvestatakse puhvrisse. Kui sisestusklahvi vajutatakse, scanf () funktsioon hakkab lugema.



Näide 1: Täisarvuline sisend

//Näide1.c
#kaasake

intpeamine(){

inti;
printf ('Sisestage esimene täisarv:');
scanf ('%d', &i);
printf ('Sisestasite: %d n',Mina);

printf ('Sisestage teine ​​täisarv:');
scanf ('%d', &i);
printf ('Sisestasite: %d n',Mina);

tagasi 0;
}

Näites 1.c oleme näinud, et täisarvuliste väärtuste sisestamisel ja sisestusklahvi vajutamisel. The scanf () funktsioon võtab väärtuse ja salvestab selle muutujale. Kui sisestame tühikuga eraldatud väärtused, siis funktsioon naaseb tühiku leidmisel, kuid tühiku järel olevad väärtused jäävad sisendpuhvrisse. Sellepärast teine scanf () funktsioon ei oota kasutaja sisestust, vaid võtab sisendi puhvrist.

Näide 2: ühe märgi sisend

//Näide2.c
#kaasake

intpeamine(){

süsic;
printf ('Sisestage märk:');
scanf ('% c', &c);
printf ('Sisestasite: %c n',c);

tagasi 0;
}

Näites2.c oleme seda näinud, kui kasutame % c täpsustaja, scanf () funktsioon võtab ainult ühe märgi, isegi kui oleme sisestanud rohkem kui ühe märgi.

Näide 3: ühe märgi sisend (mitu korda)

//Näide3.c
#kaasake

intpeamine(){

süsic;
printf ('Sisestage esimene märk:');
scanf ('% c', &c);
printf ('Sisestasite: %c n',c);

printf ('Sisestage teine ​​märk:');
scanf ('% c', &c);
printf ('Sisestasite: %c n',c);

tagasi 0;
}

Näide 4 :

//Näide4.c
#kaasake

intpeamine(){

süsic;
printf ('Sisestage esimene märk:');
scanf ('% c', &c);
printf ('Sisestasite: %c n',c);

printf ('Sisestage teine ​​märk:');
scanf ('% c', &c);
printf ('Sisestasite: %c n',c);

tagasi 0;
}

Näide 5: Stringi sisend

//Näide5.c
#kaasake

intpeamine(){

süsinimi[viisteist];
printf ('Sisestage oma nimi: ');
scanf ('%s',nimi);
printf ('Sisestasite: %s n',nimi);

tagasi 0;
}

Funktsioon getc ()

Süntaks: int getc (FILE *voog)

getc () funktsiooni kasutatakse tähemärgi lugemiseks osast FILE (voog). Klaviatuurilt lugemiseks peame kasutama stdin . See funktsioon tagastab lugemismärgi täisväärtuse.

Näide 6:

//Näide6.c
#kaasake

intpeamine(){

süsic;
printf ('Sisestage esimene märk:');
samas((c= getc (stdin))==' n');
printf ('Sisestasite: %c n',c);

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

printf ('Sisestage teine ​​märk:');
samas((c= getc (stdin))==' n');
printf ('Sisestasite: %c n',c);

tagasi 0;
}

Funktsioon getchar ()

Süntaks: int getchar (tühine)

getchar () funktsioon on sama mis getc () . Ainus erinevus on see getc () funktsiooni saab lugeda mis tahes sisendvoost, samas kui getchar () funktsioon loeb ainult standardsisendist.

Näide 7:

//Näide7.c
#kaasake

intpeamine(){

süsic;
printf ('Sisestage esimene märk:');
samas((c= saak ())==' n');
printf ('Sisestasite: %c n',c);

samas( saak ()! =' n');

printf ('Sisestage teine ​​märk:');
samas((c= saak ())==' n');
printf ('Sisestasite: %c n',c);

tagasi 0;
}

Järeldus

Selles artiklis oleme näinud, kuidas sisendfunktsioone kasutatakse C -keeles. Kõik need funktsioonid võetakse sisendpuhvrist ja kui me neid funktsioone mitu korda kasutame, peame puhvri tühjendama. Vastasel juhul ei oota funktsioonid kasutaja sisendit ega võta puhvrist sisendit.