ในภาษา C ทั้งฟังก์ชัน scanf() และ gets() ถูกกำหนดให้รับอินพุตจากแหล่งภายนอกและส่งผ่านไปยังระบบเป็นอินพุต ขณะนี้มีคุณลักษณะบางอย่างที่แตกต่างกันระหว่างฟังก์ชันทั้งสอง
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง scanf() และ gets() ใน C -
ซีเนียร์ เลขที่ | คีย์ | ฟังก์ชัน scanf() | gets() ฟังก์ชั่น |
---|---|---|---|
1 | คำจำกัดความ | ฟังก์ชัน scanf() สามารถอ่านอินพุตจากแป้นพิมพ์และจัดเก็บตามตัวระบุรูปแบบที่กำหนด มันอ่านอินพุตจนกระทั่งพบช่องว่าง ขึ้นบรรทัดใหม่ หรือ EOF | ในทางกลับกัน ฟังก์ชัน gets() ใช้สำหรับรับอินพุตจากแป้นพิมพ์จนกว่าจะขึ้นบรรทัดใหม่หรือ EOF ช่องว่างถือเป็นส่วนหนึ่งของอินพุต |
2 | ช่องว่าง | ในฟังก์ชัน scanf() white-space ไม่ถือเป็นอักขระอินพุต และยังหยุดอ่านอินพุตจากแหล่งภายนอก หากพบช่องว่างระหว่างนั้น | ในทางกลับกัน ฟังก์ชัน get() white-space ถือเป็นอักขระอินพุต และยังหยุดอ่านอินพุตจากแหล่งภายนอก หากพบช่องว่างระหว่างนั้น ให้อ่านต่อจากแหล่งอินพุต |
3 | ไวยากรณ์ | ฟังก์ชัน scanf() ใช้รูปแบบสตริงและรายการที่อยู่ของตัวแปร เช่น. scanf(“%d”, &number); | ในทางกลับกัน ฟังก์ชัน get() จะใช้ชื่อของตัวแปรเพื่อเก็บค่าที่ได้รับ เช่น. ได้รับ(ชื่อ); |
4 | ประเภทข้อมูล | ฟังก์ชัน scanf() สามารถอ่านค่าต่างๆ ของข้อมูลประเภทต่างๆ ได้หลายค่า | อย่างไรก็ตาม ฟังก์ชัน get() จะได้รับเฉพาะข้อมูลสตริงอักขระเท่านั้น |