Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง scanf() และ gets() ใน C


ในภาษา C ทั้ง scanf() และ gets() ถูกนิยามเพื่อรับอินพุตจากแหล่งภายนอกและส่งต่อให้ระบบเป็นอินพุต ตอนนี้มีความแตกต่างด้านลักษณะเฉพาะระหว่างทั้งสองฟังก์ชัน

ความแตกต่างสำคัญระหว่าง scanf() และ gets() ใน C ดังนี้ −

ลำดับ Key scanf() function gets() function
1 Definition scanf() อ่านอินพุตจากแป้นพิมพ์และเก็บตาม format specifier ที่กำหนด อ่านจนกว่าจะเจอ whitespace, newline หรือ EOF gets() รับอินพุตจากแป้นพิมพ์จนกว่าจะเจอ newline หรือ EOF whitespace ถูกนับเป็นส่วนหนึ่งของอินพุต
2 WhiteSpace ใน scanf() whitespace ไม่ถูกนับเป็นตัวอักษรอินพุต และหยุดอ่านหากเจอ whitespace ระหว่างทาง ใน gets() whitespace ถูกนับเป็นตัวอักษรอินพุต และไม่หยุดอ่านแม้เจอ whitespace ระหว่างทาง
3 Syntax scanf() รับ format string และ list ของ address ตัวแปร เช่น scanf("%d", &number); gets() รับชื่อตัวแปรเพื่อเก็บค่าที่รับมา เช่น gets(name);
4 DataType scanf() อ่านค่าได้หลายค่าและหลายชนิดข้อมูล gets() รับได้เฉพาะ character string เท่านั้น