รูปแบบสตริง
สตริงรูปแบบคือรูปแบบสำหรับข้อมูลที่ป้อน รูปแบบนี้เริ่มต้นด้วยเครื่องหมาย % และตามด้วยตัวระบุรูปแบบ ตัวระบุรูปแบบเป็นอักขระเฉพาะที่ใช้สำหรับประเภทของข้อมูลที่กำลังอ่าน
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 อย่างไร ฟังก์ชันทั้งหมดนี้รับอินพุตจากบัฟเฟอร์อินพุต และเมื่อเราใช้ฟังก์ชันเหล่านี้หลายครั้ง เราต้องล้างบัฟเฟอร์ มิฉะนั้น ฟังก์ชันจะไม่รอการป้อนข้อมูลของผู้ใช้และรับอินพุตจากบัฟเฟอร์