Maghintay para sa Input ng Gumagamit: C Wika

Wait User Input C Language



Sa wika ng C programa mayroong ilang mga pagpapaandar sa pag-input. Gamit ang mga pagpapaandar na ito, maaari naming maghintay para sa pag-input ng gumagamit. Sa tutorial na ito tatalakayin namin ang mga pag-andar ng pag-input sa mga detalye.

Pag-format ng String

Ang format string ay ang format para sa ipinasok na data. Nagsisimula ang format na ito sa% sign at sinusundan ng format specifier. Ang format specifier ay isang tukoy na character na ginagamit para sa aling uri ng data ang binabasa.







Ang arg1, arg2, arg3… ay ang mga address ng mga variable kung saan maiimbak ang ipinasok na data.



scanf () Pag-andar

Syntax: int scanf (format string, arg1, arg2, arg3…)



Ang ilan sa mga madalas na ginagamit na specifier ay ang mga sumusunod:





  • d - Ginamit para sa mga halaga ng integer.
  • f - Ginamit para sa lumulutang na numero.
  • c - Ginamit para sa solong halaga ng character.
  • s - Ginamit para sa mga string.

Gumagamit ng solong scanf () pagpapaandar, ang isa o maramihang pag-input ay maaaring makuha mula sa gumagamit.

Ang scanf () Ang function ay tumatagal ng input mula sa karaniwang input (keyboard) at iimbak ang halaga sa isang variable. Naghihintay ang pagpapaandar para sa pag-input ng gumagamit hanggang sa pindutin ng gumagamit ang enter key. Ang naipasok na halaga ay naimbak sa isang buffer. Kapag ang pagpasok ng key ay pinindot, scanf () nagsisimula nang basahin ang pagpapaandar.



Halimbawa1: Input ng Integer

//Example1.c
# isama

intpangunahing(){

intako;
printf ('Ipasok ang unang halaga ng integer:');
scanf ('% d', &ako);
printf ('Pinasok mo:% d n',Ako);

printf ('Ipasok ang halaga ng pangalawang integer:');
scanf ('% d', &ako);
printf ('Pinasok mo:% d n',Ako);

bumalik ka 0;
}

Sa Halimbawa1.c, nakita namin iyon kapag nagpasok kami ng mga halaga ng integer at pinindot ang enter key. Ang scanf () Kinukuha ng pagpapaandar ang halaga at naimbak ito sa variable. Kung ipinasok namin ang mga halagang pinaghiwalay ng espasyo, babalik ang pag-andar kapag nakatagpo ang puwang ngunit ang mga halaga pagkatapos ng puwang ay mananatili sa input buffer. Iyon ang dahilan kung bakit ang pangalawa scanf () Hindi maghihintay ang pagpapaandar para sa pag-input ng gumagamit, sa halip ay kukuha ito ng input mula sa buffer.

Halimbawa 2: Input ng Single Character

//Example2.c
# isama

intpangunahing(){

charc;
printf ('Magpasok ng character:');
scanf ('% c', &c);
printf ('Pinasok mo:% c n',c);

bumalik ka 0;
}

Sa Halimbawa2.c, nakita natin iyon kapag ginamit namin % c tagapagpahiwatig, ang scanf () ang pag-andar ay tumatagal lamang ng isang character kahit na nagpasok kami ng higit sa isang character.

Halimbawa 3: Single Character Input (Maramihang Times)

//Example3.c
# isama

intpangunahing(){

charc;
printf ('Ipasok ang 1st character:');
scanf ('% c', &c);
printf ('Pinasok mo:% c n',c);

printf ('Ipasok ang pang-2 character:');
scanf ('% c', &c);
printf ('Pinasok mo:% c n',c);

bumalik ka 0;
}

Halimbawa 4 :

//Example4.c
# isama

intpangunahing(){

charc;
printf ('Ipasok ang 1st character:');
scanf ('% c', &c);
printf ('Pinasok mo:% c n',c);

printf ('Ipasok ang pang-2 character:');
scanf ('% c', &c);
printf ('Pinasok mo:% c n',c);

bumalik ka 0;
}

Halimbawa 5: String Input

//Example5.c
# isama

intpangunahing(){

charpangalan[labinlimang];
printf ('Ipasok ang Iyong Pangalan:');
scanf ('% s',pangalan);
printf ('Pinasok mo:% s n',pangalan);

bumalik ka 0;
}

getc () Pag-andar

Syntax: int getc (FILE * stream)

getc () Ginagamit ang pagpapaandar upang mabasa ang isang character mula sa FILE pointer (stream). Upang mabasa mula sa keyboard, kailangan nating gamitin si stdin . Nagbabalik ang pagpapaandar na ito ng isang integer na halaga ng nabasang character.

Halimbawa 6:

//Example6.c
# isama

intpangunahing(){

charc;
printf ('Ipasok ang 1st character:');
habang((c= getc (si stdin))==' n');
printf ('Pinasok mo:% c n',c);

habang( getc (si stdin)! =' n');

printf ('Ipasok ang pang-2 character:');
habang((c= getc (si stdin))==' n');
printf ('Pinasok mo:% c n',c);

bumalik ka 0;
}

getchar () Pag-andar

Syntax: int getchar (walang bisa)

getchar () ang pagpapaandar ay kapareho ng getc () . Ang pagkakaiba lang nun getc () ang function ay maaaring basahin mula sa anumang input stream, samakatuwid getchar () ang function ay nagbabasa mula sa karaniwang input lamang.

Halimbawa 7:

//Example7.c
# isama

intpangunahing(){

charc;
printf ('Ipasok ang 1st character:');
habang((c= pagkuha ng bayad ())==' n');
printf ('Pinasok mo:% c n',c);

habang( pagkuha ng bayad ()! =' n');

printf ('Ipasok ang pang-2 character:');
habang((c= pagkuha ng bayad ())==' n');
printf ('Pinasok mo:% c n',c);

bumalik ka 0;
}

Konklusyon

Sa artikulong ito, nakita namin kung paano ginagamit ang mga pagpapaandar ng pag-input sa wikang C. Ang lahat ng mga pagpapaandar na ito ay kinuha input mula sa input buffer at kapag ginamit namin ang mga pagpapaandar na ito nang maraming beses, kailangan naming i-clear ang buffer. Kung hindi man, ang mga pag-andar ay hindi maghihintay para sa pag-input ng gumagamit at kukuha ng input mula sa buffer.