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

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


ในภาษา 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() จะได้รับเฉพาะข้อมูลสตริงอักขระเท่านั้น