ความแตกต่างที่สำคัญ – getc vs getchar
A ฟังก์ชันคือชุดคำสั่งเพื่อทำงานเฉพาะ ในการเขียนโปรแกรม ผู้ใช้สามารถกำหนดฟังก์ชันหรือใช้ฟังก์ชันที่จัดเตรียมโดยภาษาโปรแกรม ภาษา C มีหลายฟังก์ชัน ดังนั้นโปรแกรมเมอร์จึงสามารถใช้ฟังก์ชันเหล่านี้โดยตรงในการเขียนโปรแกรมโดยไม่ต้องดำเนินการตั้งแต่เริ่มต้น มีฟังก์ชันบางอย่างที่เกี่ยวข้องกับการอ่านอักขระ สองคนคือ getc และ getchar ความแตกต่างที่สำคัญระหว่าง getc และ getchar คือ getc ใช้เพื่ออ่านอักขระจากอินพุตสตรีม เช่น ไฟล์หรืออินพุตมาตรฐาน ในขณะที่ getchar ใช้เพื่ออ่านอักขระจากอินพุตมาตรฐานบทความนี้กล่าวถึงความแตกต่างระหว่างฟังก์ชันทั้งสองนี้
getc คืออะไร
เป็นฟังก์ชันที่ใช้อ่านอักขระจากสตรีมอินพุต เช่น ไฟล์หรือแป้นพิมพ์ ส่งกลับค่าจำนวนเต็มที่สอดคล้องกันเมื่อสำเร็จ ไวยากรณ์ของ getc คือ int getc(ไฟล์ สตรีม) ดูตัวอย่างด้านล่าง สมมติว่า test.txt เป็นไฟล์ข้อความธรรมดาในไดเร็กทอรีโครงการ ไฟล์นี้มีอักขระสองตัวคือ 'a' และ 'b'
รูปที่ 01: การอ่านอักขระของไฟล์โดยใช้ getc
ตามโปรแกรมด้านบน ไฟล์ทดสอบจะเปิดขึ้นในโหมดอ่าน จากนั้นอักขระตัวแรกจะถูกอ่านโดยใช้ฟังก์ชัน getc และเก็บไว้ในตัวแปร c1 เอาต์พุตคำสั่ง printf c1 จากนั้นอักขระตัวที่สองจะถูกอ่านและเก็บไว้ในตัวแปร c2 เอาต์พุตคำสั่ง printf c2ดังนั้นฟังก์ชัน getc จะใช้เพื่ออ่านอักขระจากสตรีม เช่น ไฟล์
รูปที่ 02: การอ่านอักขระในไฟล์โดยใช้ getc และลูป
สามารถใช้กับลูปเพื่ออ่านอักขระทั้งหมดทีละตัวจนถึงจุดสิ้นสุดของไฟล์ (EOF) ดังด้านบน อักขระสองตัวในไฟล์ test.txt จะแสดงบนหน้าจอ
getchar() คืออะไร
getchar() ใช้เพื่ออ่านอักขระจากอินพุตมาตรฐานเท่านั้น รอจนกระทั่งกดปุ่ม Enter และการอ่านค่าจะปรากฏบนหน้าจอ ไวยากรณ์คล้ายกับ int getchar(void);
ฟังก์ชัน getchar ไม่ต้องการอาร์กิวเมนต์เช่น getc โดยค่าเริ่มต้น getchar จะทำงานสำหรับอินพุตมาตรฐาน ดังนั้นจึงไม่จำเป็นต้องส่งผ่านอาร์กิวเมนต์ใดๆ ไปยังฟังก์ชัน getchar ดูตัวอย่างด้านล่าง
รูปที่ 03: getchar
เมื่อผู้ใช้ป้อนอักขระ จะปรากฏบนหน้าจอและรอจนกว่าจะกดปุ่ม Enter หลังจากป้อนคีย์ ผลลัพธ์จะถูกพิมพ์บนหน้าจอเนื่องจากฟังก์ชัน printf
ฟังก์ชัน getchar เดียวกันสามารถทำได้โดยใช้ฟังก์ชัน getc ดังนี้
รูปที่ 04: ฟังก์ชั่น getchar โดยใช้ getc
ตามโปรแกรมด้านบน ฟังก์ชัน getc ใช้สำหรับอ่านตัวอักษร มันถูกเก็บไว้ในตัวแปร "ch" ฟังก์ชัน getc โต้แย้ง stdin เพื่อระบุว่าอินพุตถูกนำมาจากอินพุตมาตรฐานซึ่งเป็นคีย์บอร์ดผู้ใช้สามารถให้ตัวอักษรและกดปุ่ม Enter จากนั้นอักขระนั้นจะพิมพ์ไปที่หน้าจอโดยใช้ฟังก์ชัน printf
ความคล้ายคลึงกันระหว่าง getc กับ getchar คืออะไร
- ทั้งสองเป็นฟังก์ชันที่จัดเตรียมโดยภาษาโปรแกรม C
- ทั้งสองฟังก์ชันจะคืนค่า End of File (EOF) เมื่อสตรีมสิ้นสุด
getc กับ getchar ต่างกันอย่างไร
getc กับ getchar |
|
getc เป็นฟังก์ชัน C เพื่ออ่านอักขระจากสตรีมอินพุต เช่น สตรีมไฟล์หรืออินพุตมาตรฐาน | getchar เป็นฟังก์ชัน C เพื่ออ่านอักขระจากสตรีมอินพุตมาตรฐาน (stdin) ซึ่งเป็นแป้นพิมพ์เท่านั้น |
วากยสัมพันธ์ | |
getc ไวยากรณ์คล้ายกับ int getc(ไฟล์ สตรีม). | getchar ไวยากรณ์คล้ายกับ int getchar(เป็นโมฆะ); |
สรุป – getc vs getchar
ภาษาซีมีฟังก์ชันมากมาย โปรแกรมเมอร์สามารถใช้ฟังก์ชันเหล่านี้ได้โดยไม่ต้องใช้งานตั้งแต่เริ่มต้น สองฟังก์ชันดังกล่าวคือ getc และ getchar ความแตกต่างระหว่าง getc และ getchar คือ getc ใช้ในการอ่านอักขระจากอินพุตสตรีม เช่น ไฟล์หรืออินพุตมาตรฐาน และ getchar ใช้เพื่ออ่านอักขระจากอินพุตมาตรฐาน ทั้งคู่ใช้อ่านตัวละครแต่ฟังก์ชั่นต่างกัน
ดาวน์โหลดเวอร์ชัน PDF ของ getc vs getchar
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามบันทึกการอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ ความแตกต่างระหว่าง getc และ getchar