ความแตกต่างระหว่าง scanf กับ gets

สารบัญ:

ความแตกต่างระหว่าง scanf กับ gets
ความแตกต่างระหว่าง scanf กับ gets

วีดีโอ: ความแตกต่างระหว่าง scanf กับ gets

วีดีโอ: ความแตกต่างระหว่าง scanf กับ gets
วีดีโอ: เรียนภาษา C ใช้ gets ต่างจาก scanf อย่างไร / สร้างปัญหาอะไร / แล้วแก้ไขยังไง 2024, พฤศจิกายน
Anonim

ความแตกต่างที่สำคัญ – scanf vs gets

A ฟังก์ชันคือชุดคำสั่งเพื่อทำงานเฉพาะ โดยไม่ต้องเขียนประโยคทั้งหมดในโปรแกรมเดียวกัน ก็สามารถแบ่งออกเป็นหลายฟังก์ชันได้ ในการเขียนโปรแกรม ผู้ใช้สามารถกำหนดฟังก์ชันของตนเองได้ นอกจากนี้ยังมีฟังก์ชันที่จัดเตรียมโดยภาษาโปรแกรม ภาษา C มีฟังก์ชันมากมาย ดังนั้นโปรแกรมเมอร์จึงสามารถใช้งานได้โดยตรงโดยไม่ต้องดำเนินการตั้งแต่ต้น สองฟังก์ชันดังกล่าวที่จัดเตรียมโดยภาษา C คือ scanf และรับ บทความนี้กล่าวถึงความแตกต่างระหว่างฟังก์ชันทั้งสองนี้ ความแตกต่างที่สำคัญระหว่าง scanf กับ gets คือ scanf สิ้นสุดการรับอินพุตเมื่อพบช่องว่าง ขึ้นบรรทัดใหม่ หรือ End Of File (EOF) ในขณะที่พิจารณาว่าช่องว่างเป็นส่วนหนึ่งของสตริงอินพุต และสิ้นสุดอินพุตเมื่อพบบรรทัดใหม่หรือ EOF

scanf คืออะไร

ฟังก์ชั่น scanf สามารถอ่านอินพุตจากแป้นพิมพ์และจัดเก็บตามตัวระบุรูปแบบที่กำหนด มันอ่านอินพุตจนกระทั่งพบช่องว่าง ขึ้นบรรทัดใหม่ หรือ EOF ไวยากรณ์มีดังนี้

scanf(“สตริงรูปแบบ” รายการที่อยู่ของตัวแปร);

ดูตัวอย่างด้านล่างเพื่อทำความเข้าใจ scanf

ความแตกต่างระหว่าง scanf และ gets
ความแตกต่างระหว่าง scanf และ gets
ความแตกต่างระหว่าง scanf และ gets
ความแตกต่างระหว่าง scanf และ gets

รูปที่ 01: scanf ด้วยหนึ่งอินพุต

ตามโปรแกรมด้านบน อินพุตที่ได้รับจากคีย์บอร์ดเป็นจำนวนเต็ม ดังนั้นตัวระบุรูปแบบจึงเป็น %d หากได้รับค่าอักขระ ตัวระบุรูปแบบคือ %cหากได้รับค่าทศนิยม ตัวระบุรูปแบบจะเป็น %f ค่าอินพุตที่ได้รับควรเก็บไว้ในตัวแปรตัวเลข ดังนั้นที่อยู่ของหมายเลขตัวแปรจึงถูกส่งไปยังฟังก์ชัน scanf ตอนนี้ตัวแปรตัวเลขมีค่าที่กำหนดโดยผู้ใช้จากแป้นพิมพ์ สุดท้ายเราสามารถพิมพ์ตัวแปรตัวเลขเพื่อตรวจสอบค่าได้

นอกจากนี้ยังสามารถรับได้มากกว่าหนึ่งค่าในแต่ละครั้ง

ความแตกต่างระหว่าง scanf และ gets_Figure 02
ความแตกต่างระหว่าง scanf และ gets_Figure 02
ความแตกต่างระหว่าง scanf และ gets_Figure 02
ความแตกต่างระหว่าง scanf และ gets_Figure 02

รูปที่ 02: scanf ที่มีหลายอินพุต

อินพุตที่ได้รับจะถูกเก็บไว้ในตัวแปร number1 และ number2 สามารถตรวจสอบค่าได้โดยใช้ printf.

ได้อะไร

ฟังก์ชัน gets ใช้รับอินพุตจากแป้นพิมพ์จนกว่าจะขึ้นบรรทัดใหม่หรือ EOF ช่องว่างถือเป็นส่วนหนึ่งของอินพุต ไวยากรณ์สำหรับฟังก์ชัน gets มีดังนี้

gets(“จะเก็บสตริงได้ที่ไหน”);

หากมีข้อผิดพลาดเมื่อรับสตริง ฟังก์ชัน gets จะคืนค่าเป็น null

ดูตัวอย่างด้านล่าง

ความแตกต่างที่สำคัญระหว่าง scanf และ gets
ความแตกต่างที่สำคัญระหว่าง scanf และ gets
ความแตกต่างที่สำคัญระหว่าง scanf และ gets
ความแตกต่างที่สำคัญระหว่าง scanf และ gets

รูปที่ 03: ได้รับ

รับอินพุตโดยฟังก์ชัน gets และเก็บไว้ในตัวแปร word1 หากโปรแกรมเมอร์ใช้ scanf แทน gets และป้อนสตริงเช่น "hello world" scanf จะอ่านสตริงเป็นสองสตริงเนื่องจากช่องว่างแต่ได้จะอ่านเป็นสตริงเดียว “สวัสดีชาวโลก”

ความคล้ายคลึงกันระหว่าง scanf กับ gets คืออะไร

  • ทั้งสองเป็นฟังก์ชันที่จัดเตรียมโดยภาษาโปรแกรม C
  • ทั้งสองควรมีไฟล์ส่วนหัว stdio.h เพื่อใช้ฟังก์ชันเหล่านี้
  • ทั้งสองสามารถใช้เพื่อรับอินพุตจากอินพุตมาตรฐาน

scanf กับ gets ต่างกันอย่างไร

scanf vs gets

scanf เป็นฟังก์ชัน C เพื่ออ่านอินพุตจากอินพุตมาตรฐานจนกว่าจะพบช่องว่าง ขึ้นบรรทัดใหม่ หรือ EOF gets เป็นฟังก์ชัน C เพื่ออ่านอินพุตจากอินพุตมาตรฐานจนกว่าจะขึ้นบรรทัดใหม่หรือ EOF จะถือว่าช่องว่างเป็นส่วนหนึ่งของอินพุต
วากยสัมพันธ์
scanf ฟังก์ชันใช้สตริงรูปแบบและรายการที่อยู่ของตัวแปร เช่น. scanf(“%d”, &number); gets ฟังก์ชั่นใช้ชื่อของตัวแปรเพื่อเก็บค่าที่ได้รับ เช่น. ได้รับ(ชื่อ);
ความยืดหยุ่น
scanf สามารถอ่านข้อมูลประเภทต่างๆ ได้หลายค่า gets() จะได้รับเฉพาะข้อมูลสตริงอักขระ

สรุป – scanf vs gets

scanf and gets เป็นฟังก์ชันที่จัดเตรียมโดยภาษาการเขียนโปรแกรม C ผู้ใช้ไม่จำเป็นต้องใช้ฟังก์ชันเหล่านี้ตั้งแต่เริ่มต้น สามารถใช้ในโปรแกรมได้โดยตรง ความแตกต่างระหว่าง scanf กับ gets คือ scanf สิ้นสุดการรับอินพุตเมื่อพบช่องว่าง การขึ้นบรรทัดใหม่ หรือ End Of File (EOF) และถือว่าช่องว่างเป็นส่วนหนึ่งของสตริงอินพุต และสิ้นสุดอินพุตเมื่อพบบรรทัดใหม่หรือ EOFการใช้ scanf หรือ gets ขึ้นอยู่กับวิธีการรับอินพุตของผู้ใช้จากอินพุตมาตรฐานซึ่งเป็นแป้นพิมพ์โดยส่วนใหญ่ scanf มีความยืดหยุ่นมากกว่าที่ได้รับ

ดาวน์โหลดไฟล์ PDF ของ scanf vs gets

คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ ความแตกต่างระหว่าง scanf และ gets

แนะนำ: