การแสดงผล (Output)
การแสดงผลลัพธ์ ปกติก็คือแสดงออกทางจอภาพ ในภาษาซีใช้ในรูปของฟังก์ชัน เช่นเดียวกับงานอื่น ๆ โดยฟังก์ชันมาตรฐานที่มีใน library ฟังก์ชันที่ใช้แสดงผลทางจอภาพ เช่น printf() ,puts() , putchar() ฟังก์ชัน เหล่านี้อยู่ใน header file ชื่อ stdio.h
ฟังก์ชัน printf()
เป็นฟังก์ชันที่ใช้แสดงผลลัพธ์ออกทางจอภาพ การแสดงผลทางจอภาพด้วยฟังก์ชันนี้สามารถกำหนดรูปแบบและรหัสควบคุมได้ โดยฟังก์ชัน printf() มีรูปแบบ ดังนี้
printf(control string,argument list);
โดย control string รวมทั้งข้อความ รหัสกำหนดรูปแบบ รหัสควบคุม ทั้งหมดนี้ ต้องล้อมด้วยเครื่องหมาย คำพูด (") ส่วนargument list เป็นรายกาของตัวแปร ค่าคงที่ หรือนิพจน์ที่จะแสดงออกทางจอภาพ หากมี ตัวแปร ค่าคงที่ หรือนิพจน์ มากกว่า 1 ค่า แต่ละค่าจะคั่นด้วเครื่องหมาย คอมม่า(,)
รหัสกำหนดรูปแบบ(format code) เป็นรหัสกำหนดรูปแบบของตัวแปร ค่าคงที่ หรือนิพจน์ที่จะแสดงผล เช่น แสดงค่าเลขจำนวนเต็ม หรือจำนวน จริงอักขระ ข้อความ ฯลฯ ส่วนรหัสควบคุม(control code)เป็นตัวกำหนดว่าเมื่อแสดงผลแล้วลักษณะของการแสดงผลครั้งต่อไปจะเปลี่ยนเป็นอย่างไร หรือใช้แสดงผลอักขระหรือสัญลักษณ์พิเศษบางตัว
รหัสรูปแบบที่ใช้กับฟังก์ชัน printf() จะเริ่มด้วยเครื่องหมาย % ดังตารางแสดงต่อไปนี้
การแสดงผลลัพธ์ ปกติก็คือแสดงออกทางจอภาพ ในภาษาซีใช้ในรูปของฟังก์ชัน เช่นเดียวกับงานอื่น ๆ โดยฟังก์ชันมาตรฐานที่มีใน library ฟังก์ชันที่ใช้แสดงผลทางจอภาพ เช่น printf() ,puts() , putchar() ฟังก์ชัน เหล่านี้อยู่ใน header file ชื่อ stdio.h
ฟังก์ชัน printf()
เป็นฟังก์ชันที่ใช้แสดงผลลัพธ์ออกทางจอภาพ การแสดงผลทางจอภาพด้วยฟังก์ชันนี้สามารถกำหนดรูปแบบและรหัสควบคุมได้ โดยฟังก์ชัน printf() มีรูปแบบ ดังนี้
printf(control string,argument list);
โดย control string รวมทั้งข้อความ รหัสกำหนดรูปแบบ รหัสควบคุม ทั้งหมดนี้ ต้องล้อมด้วยเครื่องหมาย คำพูด (") ส่วนargument list เป็นรายกาของตัวแปร ค่าคงที่ หรือนิพจน์ที่จะแสดงออกทางจอภาพ หากมี ตัวแปร ค่าคงที่ หรือนิพจน์ มากกว่า 1 ค่า แต่ละค่าจะคั่นด้วเครื่องหมาย คอมม่า(,)
รหัสกำหนดรูปแบบ(format code) เป็นรหัสกำหนดรูปแบบของตัวแปร ค่าคงที่ หรือนิพจน์ที่จะแสดงผล เช่น แสดงค่าเลขจำนวนเต็ม หรือจำนวน จริงอักขระ ข้อความ ฯลฯ ส่วนรหัสควบคุม(control code)เป็นตัวกำหนดว่าเมื่อแสดงผลแล้วลักษณะของการแสดงผลครั้งต่อไปจะเปลี่ยนเป็นอย่างไร หรือใช้แสดงผลอักขระหรือสัญลักษณ์พิเศษบางตัว
รหัสรูปแบบที่ใช้กับฟังก์ชัน printf() จะเริ่มด้วยเครื่องหมาย % ดังตารางแสดงต่อไปนี้
รหัสควบคุมที่ใช้กับ printf() (นำหน้าด้วยเครื่องหมาย \ )
ฟังก์ชัน putchar()
เป็นฟังก์ชันที่ใช้แสดงอักขระครั้งละ 1 ตัว ทางจอภาพ รูปแบบของฟังก์ชัน คือ
Putchar(character);
ฟังก์ชัน puts()
ใช้แสดงข้อความ(ไม่ใช่อักขระ)ออกทางจอภาพ รูปแบบของฟังก์ชัน คือ
puts(string);
ฟังก์ชันรับข้อมูล (Input function)
ฟังก์ชัน getchar()
เป็นฟังก์ชันที่ใช้รับข้อมูลเป็นตัวอักขระจำนวน 1 ตัวจากแป้นพิมพ์และอักขระนั้นจะปรากฏบนจอภาพ ด้วยและต้องเคาะแป้น enter เพื่อแสดงว่าป้อนข้อมูลแล้ว แต่ในการกำหนดตัวแปรมารับค่าถ้าใช้เป็น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจำนวนเต็มที่รับจากการเคาะแป้นพิมพ์จะเป็นรหัส ASCII ของ ตัวอักษรนั้น เช่น A จะเป็น 65 แต่ถ้าตัวแปรที่มารับค่าเป็น char จะมี warning ในเรื่องการเปลี่ยนประเภทตัวแปร แต่ค่าที่จะแสดงออกมาจะตรง ตามที่มีการเคาะแป้น และจะมีปัญหาเมื่อมีการใช้ฟังก์ชันนี้มากกว่า 1 ครั้ง
ฟังก์ชัน getch()
ใช้รับตัวอักขระ 1 ตัวจากแป้นพิมพ์ แต่ขณะรับไม่แสดงทางจอภาพและไม่ต้องเคาะแป้น enter
แล้ว แต่ในการกำหนดตัวแปรมารับค่าถ้าใช้เป็น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจำนวนเต็มที่ตัวแปรได้รับมาเป็นค่ารหัส ASCII ของตัวอักขระที่เคาะแป้นพิมพ์ เช่น C เป็น 67 แต่ถ้าตัวแปรที่มารับค่าเป็น char จะมี warning ในเรื่องการเปลี่ยนประเภทตัวแปร แต่ค่าที่ได้จะแสดงออกมาได้ถูกต้อง
ฟังก์ชัน getche()
รับตัวอักขระจากแป้นพิมพ์ 1 ตัว โดยแสดงออกทางจอภาพด้วยและไม่ต้องเคาะแป้น enter ลักษณะการทำงานเป็นไปในลักษณะเดียวกับ getche() ต่างกันที่แสดงออกทางจอภาพหรือไม่เท่านั้น
ฟังก์ชัน gets()
ใช้รับข้อความจากแป้นพิมพ์ มาเก็บไว้ในชื่อตัวแปรที่กำหนด โดยเคาะแป้น enter แสดงการจบการป้อนข้อมูล มีรูปแบบ คือ gets(string_var);
โดย string_var คือ ชื่อตัวแปรที่ใช้เก็บข้อมูลที่รับมาจากการป้อนทางแป้นพิมพ์ เป็นตัวแปรประเภทข้อความ และสามารถแยกเป็นตัวอักขระ ได้ ทั้งหมดนี้ให้พิจารณาจากใบงาน
ฟังก์ชัน scanf()
เป็นฟังก์ชันที่ใช้รับข้อมูลประเภทต่าง ๆ จากแป้นพิมพ์ได้กว้างขวางกว่าฟังก์ชันอื่น ๆ ที่ผ่านมา ข้อมูลที่รับ เช่น จำ นวนเต็ม จำนวนจริง ข้อความอักขระ รูปแบบของฟังก์ชัน คือ scanf(control string ,variable list);
control string เป็นรหัสสำหรับรูปแบบของข้อมูลที่จะรับเข้า โดยรหัสรูปแบบนี้เป็นทำนองเดียวกับฟังก์ชัน printf() โดยรหัสนี้ทังหมดจะต้องอยู่ภายในเครื่องหมายพูด รหัสแต่ละตัวจะแทนข้อมูลแต่ละค่า โดยสามารถมีรหัสของข้อมูล หลายค่าได้ในครั้งเดียวกันโดยไม่จำเป็นต้องมีเครื่องหมายอื่นใดมาคั่น
variable list คือรายการของชื่อตัวแปรที่จะมารับค่าของข้อมูลที่ป้อนจากแป้นพิมพ์ โดยตัวแปรต้องประเภทเดียวกับข้อมูลที่ตัวแปรนั้นรับ และจำนวนตัวแปรจะต้องมีจำนวนเท่ากับจำนวนรหัสรูปแบบของข้อมูล โดยชื่อตัวแปรนั้นอยู่หลังจากเครื่องหมายคำพูดที่ล้อมรหัสข้อมูลโดยมีการคั่นด้วยเครื่องหมายคอมม่า(,)และหากมีตัวแปรหลายตัวแต่ละตัว จะคั่นด้วยเครื่องหมายคอมม่า เช่นกัน และหน้าชื่อตัวแปรแต่ละตัวจะต้องนำด้วยเครื่องหมาย & ยกเว้นตัวแปรของข้อมูลประเภทข้อความ(string) เช่น คำสั่ง
scanf("%d %f %s",&i,&f1,word);
เป็นคำสั่งให้รับข้อมูลจากแป้นพิมพ์ 3 ค่า เป็นข้อมูลประเภท จำนวนเต็มแบบเลขฐานสิบ ตามด้วยข้อมูลเลขทศนิยม และข้อมูลประเภทข้อความ โดยมีตัวแปร ชื่อ i ,f1 และ word ซึ่งเป็นแปรตัวประเภท จำนวนเต็ม จำนวนทศนิยม และตัวแปรข้อความตามลำดับ มารับค่าของข้อมูลเหล่านั้น รหัสข้อมูลที่ใช้ในฟังก์ชัน scanf() เป็นดังรายการ
เป็นฟังก์ชันที่ใช้แสดงอักขระครั้งละ 1 ตัว ทางจอภาพ รูปแบบของฟังก์ชัน คือ
Putchar(character);
ฟังก์ชัน puts()
ใช้แสดงข้อความ(ไม่ใช่อักขระ)ออกทางจอภาพ รูปแบบของฟังก์ชัน คือ
puts(string);
ฟังก์ชันรับข้อมูล (Input function)
ฟังก์ชัน getchar()
เป็นฟังก์ชันที่ใช้รับข้อมูลเป็นตัวอักขระจำนวน 1 ตัวจากแป้นพิมพ์และอักขระนั้นจะปรากฏบนจอภาพ ด้วยและต้องเคาะแป้น enter เพื่อแสดงว่าป้อนข้อมูลแล้ว แต่ในการกำหนดตัวแปรมารับค่าถ้าใช้เป็น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจำนวนเต็มที่รับจากการเคาะแป้นพิมพ์จะเป็นรหัส ASCII ของ ตัวอักษรนั้น เช่น A จะเป็น 65 แต่ถ้าตัวแปรที่มารับค่าเป็น char จะมี warning ในเรื่องการเปลี่ยนประเภทตัวแปร แต่ค่าที่จะแสดงออกมาจะตรง ตามที่มีการเคาะแป้น และจะมีปัญหาเมื่อมีการใช้ฟังก์ชันนี้มากกว่า 1 ครั้ง
ฟังก์ชัน getch()
ใช้รับตัวอักขระ 1 ตัวจากแป้นพิมพ์ แต่ขณะรับไม่แสดงทางจอภาพและไม่ต้องเคาะแป้น enter
แล้ว แต่ในการกำหนดตัวแปรมารับค่าถ้าใช้เป็น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจำนวนเต็มที่ตัวแปรได้รับมาเป็นค่ารหัส ASCII ของตัวอักขระที่เคาะแป้นพิมพ์ เช่น C เป็น 67 แต่ถ้าตัวแปรที่มารับค่าเป็น char จะมี warning ในเรื่องการเปลี่ยนประเภทตัวแปร แต่ค่าที่ได้จะแสดงออกมาได้ถูกต้อง
ฟังก์ชัน getche()
รับตัวอักขระจากแป้นพิมพ์ 1 ตัว โดยแสดงออกทางจอภาพด้วยและไม่ต้องเคาะแป้น enter ลักษณะการทำงานเป็นไปในลักษณะเดียวกับ getche() ต่างกันที่แสดงออกทางจอภาพหรือไม่เท่านั้น
ฟังก์ชัน gets()
ใช้รับข้อความจากแป้นพิมพ์ มาเก็บไว้ในชื่อตัวแปรที่กำหนด โดยเคาะแป้น enter แสดงการจบการป้อนข้อมูล มีรูปแบบ คือ gets(string_var);
โดย string_var คือ ชื่อตัวแปรที่ใช้เก็บข้อมูลที่รับมาจากการป้อนทางแป้นพิมพ์ เป็นตัวแปรประเภทข้อความ และสามารถแยกเป็นตัวอักขระ ได้ ทั้งหมดนี้ให้พิจารณาจากใบงาน
ฟังก์ชัน scanf()
เป็นฟังก์ชันที่ใช้รับข้อมูลประเภทต่าง ๆ จากแป้นพิมพ์ได้กว้างขวางกว่าฟังก์ชันอื่น ๆ ที่ผ่านมา ข้อมูลที่รับ เช่น จำ นวนเต็ม จำนวนจริง ข้อความอักขระ รูปแบบของฟังก์ชัน คือ scanf(control string ,variable list);
control string เป็นรหัสสำหรับรูปแบบของข้อมูลที่จะรับเข้า โดยรหัสรูปแบบนี้เป็นทำนองเดียวกับฟังก์ชัน printf() โดยรหัสนี้ทังหมดจะต้องอยู่ภายในเครื่องหมายพูด รหัสแต่ละตัวจะแทนข้อมูลแต่ละค่า โดยสามารถมีรหัสของข้อมูล หลายค่าได้ในครั้งเดียวกันโดยไม่จำเป็นต้องมีเครื่องหมายอื่นใดมาคั่น
variable list คือรายการของชื่อตัวแปรที่จะมารับค่าของข้อมูลที่ป้อนจากแป้นพิมพ์ โดยตัวแปรต้องประเภทเดียวกับข้อมูลที่ตัวแปรนั้นรับ และจำนวนตัวแปรจะต้องมีจำนวนเท่ากับจำนวนรหัสรูปแบบของข้อมูล โดยชื่อตัวแปรนั้นอยู่หลังจากเครื่องหมายคำพูดที่ล้อมรหัสข้อมูลโดยมีการคั่นด้วยเครื่องหมายคอมม่า(,)และหากมีตัวแปรหลายตัวแต่ละตัว จะคั่นด้วยเครื่องหมายคอมม่า เช่นกัน และหน้าชื่อตัวแปรแต่ละตัวจะต้องนำด้วยเครื่องหมาย & ยกเว้นตัวแปรของข้อมูลประเภทข้อความ(string) เช่น คำสั่ง
scanf("%d %f %s",&i,&f1,word);
เป็นคำสั่งให้รับข้อมูลจากแป้นพิมพ์ 3 ค่า เป็นข้อมูลประเภท จำนวนเต็มแบบเลขฐานสิบ ตามด้วยข้อมูลเลขทศนิยม และข้อมูลประเภทข้อความ โดยมีตัวแปร ชื่อ i ,f1 และ word ซึ่งเป็นแปรตัวประเภท จำนวนเต็ม จำนวนทศนิยม และตัวแปรข้อความตามลำดับ มารับค่าของข้อมูลเหล่านั้น รหัสข้อมูลที่ใช้ในฟังก์ชัน scanf() เป็นดังรายการ