รอการป้อนข้อมูลของผู้ใช้: ภาษา C

Wait User Input C Language



ในภาษาโปรแกรม C มีฟังก์ชันอินพุตบางอย่าง เมื่อใช้ฟังก์ชันเหล่านี้ เราสามารถรอการป้อนข้อมูลของผู้ใช้ได้ ในบทช่วยสอนนี้ เราจะพูดถึงฟังก์ชันอินพุตโดยละเอียด

รูปแบบสตริง

สตริงรูปแบบคือรูปแบบสำหรับข้อมูลที่ป้อน รูปแบบนี้เริ่มต้นด้วยเครื่องหมาย % และตามด้วยตัวระบุรูปแบบ ตัวระบุรูปแบบเป็นอักขระเฉพาะที่ใช้สำหรับประเภทของข้อมูลที่กำลังอ่าน







arg1, arg2, arg3… คือที่อยู่ของตัวแปรที่จะเก็บข้อมูลที่ป้อน



scanf() ฟังก์ชั่น

ไวยากรณ์: int scanf (รูปแบบสตริง arg1, arg2, arg3…)



ตัวระบุที่ใช้บ่อยบางส่วนมีดังนี้:





  • NS – ใช้สำหรับค่าจำนวนเต็ม
  • NS – ใช้สำหรับเลขลอยตัว
  • – ใช้สำหรับค่าตัวอักษรเดียว
  • NS - ใช้สำหรับสตริง

ใช้ซิงเกิ้ล scanf() ฟังก์ชั่นหนึ่งหรือหลายอินพุตสามารถนำมาจากผู้ใช้

NS scanf() ฟังก์ชั่นรับอินพุตจากอินพุตมาตรฐาน (คีย์บอร์ด) และเก็บค่าไว้ในตัวแปร ฟังก์ชันจะรอการป้อนข้อมูลของผู้ใช้จนกว่าผู้ใช้จะกดปุ่ม Enter ค่าที่ป้อนจะถูกเก็บไว้ในบัฟเฟอร์ เมื่อกดปุ่ม Enter scanf() ฟังก์ชั่นเริ่มอ่าน



ตัวอย่างที่ 1: อินพุตจำนวนเต็ม

//Example1.c
#รวม

intหลัก(){

intผม;
printf ('ป้อนค่าจำนวนเต็มที่ 1 : ');
scanf ('%NS', &ผม);
printf ('คุณเข้ามา : %dNS',ผม);

printf ('ป้อนค่าจำนวนเต็มตัวที่ 2 : ');
scanf ('%NS', &ผม);
printf ('คุณเข้ามา : %dNS',ผม);

กลับ 0;
}

ใน Example1.c เราพบว่าเมื่อเราป้อนค่าจำนวนเต็มและกดปุ่ม Enter NS scanf() ฟังก์ชั่นรับค่าและเก็บไว้ในตัวแปร หากเราป้อนค่าที่คั่นด้วยช่องว่าง ฟังก์ชันจะส่งกลับเมื่อพบช่องว่าง แต่ค่าหลังช่องว่างยังคงอยู่ในบัฟเฟอร์อินพุต นั่นเป็นเหตุผลที่ที่สอง scanf() ฟังก์ชันจะไม่รอการป้อนข้อมูลของผู้ใช้ แต่จะรับอินพุตจากบัฟเฟอร์แทน

ตัวอย่างที่ 2: การป้อนอักขระตัวเดียว

//Example2.c
#รวม

intหลัก(){

char;
printf ('ป้อนอักขระ: ');
scanf ('% ค', &);
printf ('คุณเข้ามา : %cNS',);

กลับ 0;
}

ใน Example2.c เราได้เห็นแล้วว่าเมื่อเราใช้ % ค ตัวระบุ scanf() ฟังก์ชันใช้อักขระเพียงตัวเดียวแม้ว่าเราจะป้อนอักขระมากกว่าหนึ่งตัว

ตัวอย่างที่ 3: การป้อนอักขระตัวเดียว (หลายครั้ง)

//Example3.c
#รวม

intหลัก(){

char;
printf ('ป้อนอักขระที่ 1:');
scanf ('% ค', &);
printf ('คุณเข้ามา : %cNS',);

printf ('ป้อนอักขระตัวที่ 2 : ');
scanf ('% ค', &);
printf ('คุณเข้ามา : %cNS',);

กลับ 0;
}

ตัวอย่างที่ 4 :

//Example4.c
#รวม

intหลัก(){

char;
printf ('ป้อนอักขระที่ 1:');
scanf ('% ค', &);
printf ('คุณเข้ามา : %cNS',);

printf ('ป้อนอักขระตัวที่ 2 : ');
scanf ('% ค', &);
printf ('คุณเข้ามา : %cNS',);

กลับ 0;
}

ตัวอย่างที่ 5: อินพุตสตริง

//Example5.c
#รวม

intหลัก(){

charชื่อ[สิบห้า];
printf ('ใส่ชื่อของคุณ: ');
scanf ('%NS',ชื่อ);
printf ('คุณเข้ามา : %sNS',ชื่อ);

กลับ 0;
}

getc() ฟังก์ชั่น

ไวยากรณ์: int getc (ไฟล์ * สตรีม)

getc() ฟังก์ชันใช้เพื่ออ่านอักขระจากตัวชี้ FILE (สตรีม) อ่านจากคีย์บอร์ดต้องใช้ stdin . ฟังก์ชันนี้คืนค่าจำนวนเต็มของอักขระที่อ่าน

ตัวอย่างที่ 6:

//Example6.c
#รวม

intหลัก(){

char;
printf ('ป้อนอักขระที่ 1:');
ในขณะที่((= getc (stdin))=='NS');
printf ('คุณเข้ามา : %cNS',);

ในขณะที่( getc (stdin)! ='NS');

printf ('ป้อนอักขระตัวที่ 2 : ');
ในขณะที่((= getc (stdin))=='NS');
printf ('คุณเข้ามา : %cNS',);

กลับ 0;
}

getchar() ฟังก์ชั่น

ไวยากรณ์: int getchar (เป็นโมฆะ)

getchar() ฟังก์ชั่นเหมือนกับ getc() . ข้อแตกต่างเพียงอย่างเดียวคือ getc() ฟังก์ชั่นสามารถอ่านจากสตรีมอินพุตใด ๆ ในขณะที่ getchar() ฟังก์ชั่นอ่านจากอินพุตมาตรฐานเท่านั้น

ตัวอย่างที่ 7:

//Example7.c
#รวม

intหลัก(){

char;
printf ('ป้อนอักขระที่ 1:');
ในขณะที่((= getchar ())=='NS');
printf ('คุณเข้ามา : %cNS',);

ในขณะที่( getchar ()! ='NS');

printf ('ป้อนอักขระตัวที่ 2 : ');
ในขณะที่((= getchar ())=='NS');
printf ('คุณเข้ามา : %cNS',);

กลับ 0;
}

บทสรุป

ในบทความนี้ เราได้เห็นว่ามีการใช้ฟังก์ชันอินพุตในภาษา C อย่างไร ฟังก์ชันทั้งหมดนี้รับอินพุตจากบัฟเฟอร์อินพุต และเมื่อเราใช้ฟังก์ชันเหล่านี้หลายครั้ง เราต้องล้างบัฟเฟอร์ มิฉะนั้น ฟังก์ชันจะไม่รอการป้อนข้อมูลของผู้ใช้และรับอินพุตจากบัฟเฟอร์