
ในการเขียนโปรแกรมต้องมีการใช้งานข้อมูล ข้อมูลต่างๆ เหล่านี้จะมีการนำไปแสดงผลและรับเข้ามาโดยผ่านอุปกรณ์อินพุตและเอ้าท์พุต เนื่องจากข้อมูลมีหลายรูปแบบตามชนิดที่มีให้ใช้ในภาษาซี ผู้เขียนโปรแกรมจึงต้องทราบวิธีการที่จะนำมาแสดงผลและรับค่าข้อมูลได้ถูกต้องตรงตามความต้องการ
การรับและแสดงผลข้อมูล (เฮดเดอร์ไฟล์ stdio.h)
ฟังก์ชันที่ใช้รับและแสดงผลข้อมูล ที่ประกาศไว้ในเฮดเดอร์ไฟล์ stdio.h ประกอบด้วย 6 ฟังก์ชัน ด้วยกันคือ getchar( ), putchar( ), scanf( ), printf( ), gets( ) และ puts( )
ความหมายของการแสดงผล
การแสดงผล หมายถึง การสั่งให้คอมพิวเตอร์นำข้อมูล และผลลัพธ์ที่มีอยู่ในหน่วยความจำไปแสดงผลออกที่อุปกรณ์แสดงผล (Output Device) ของคอมพิวเตอร์ การแสดงผลที่อุปกรณ์แสดงผลอาจมีเพียงอุปกรณ์เดียว หรือหลาย ๆ อุปกรณ์พร้อมกันได้ เช่น แสดงผลที่จอภาพ เครื่องพิมพ์ ลำโพง แผ่นดิสก์
แสดงผลออกทางหน้าจอ เป็นการทำงานพื้นฐานหรือเรียกได้ว่าเป็นส่วนหนึ่งในการทำงานของทุกโปรแกรม คือ การแสดงผลข้อมูลออกทางจอภาพ โดยในภาษาซีนั้นการแสดงผลข้อมูลออกทางจอภาพใช้คำสั่งดังนี้

ฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ คือ printf() ซึ่งเป็นฟังก์ชันที่อยู่ในไฟล์ stdio.h การเรียกใช้ฟังก์ชันนี้จะต้องทำการประมวลผลด้วยการสั่ง #include <stdio.h> ก่อนเสมอ ฟังก์ชัน printf มีหน้าที่หลักคือ แปลงข้อมูลในลักษณะของเลขฐานสอง (binary) ที่คอมพิวเตอร์ประมวลผลได้ ให้อยู่ในรูปแบบที่มนุษย์เข้าใจ ก่อนแสดงผลข้อมูลออกทางจอภาพ สามารถแสดงผลข้อมูลได้ทุกชนิดไม่ว่าจะเป็นจำนวนเต็ม (int) ทศนิยม (float) ข้อความ (string) หรืออักขระ (char) มีรูปแบบการเขียนฟังก์ชัน printf() ดังนี้
printf (format control, argument list); |
โดยที่ :
format control คือ จะต้องเขียนอยู่ภายใต้เครื่องหมาย Double Quote “………” เป็นข้อความที่ต้องการแสดงผลออกทางหน้าจอ ซึ่งเป็นได้ทั้งข้อความธรรมดา ค่ารหัสรูปแบบข้อมูล และรหัสควบคุม
argument list คือ ค่าคงที่ ตัวแปร หรือนิพจน์ ในกรณีที่มีค่าคงที่ ตัวแปร หรือนิพจน์หลายๆ ค่าให้ใช้เครื่องหมาย , (comma) คั่นระหว่างค่าคงที่ ตัวแปร หรือนิพจน์แต่ละค่า
ตัวอย่าง การใช้งานฟังก์ชัน printf()
printf("Hello Program C");
printf("Do more [y/n]\n");
printf("%s","Hello....c");
printf("%s",TEXT);
printf ("1+1=%d",2);
printf("\n\n\007");
รหัสรูปแบบข้อมูล
รหัสรูปแบบข้อมูล ใช้สำหรับการควบคุมการแสดงผลตัวแปร หรือนิพจน์ออกทางหน้าจอ โดยรหัสรูปแบบข้อมูลมีหลายชนิดด้วยกัน การนำไปใช้จะต้องพิจารณาให้เหมาะสมกับค่าของข้อมูลที่จะแสดงผล
สำหรับรหัสรูปแบบข้อมูลที่สามารถนำมาใช้กับฟังก์ชัน print() แสดงได้ดังนี้
รหัสรูปแบบข้อมูล |
ชนิดข้อมูลที่พิมพ์ |
%c |
ตัวอักขระหนึ่งตัว (char) |
%d |
เลขจำนวนเต็ม (int) |
%ld |
เลขจำนวนเต็มแบบยาว (long) |
%e |
ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม (float) |
%f |
เลขจำนวนจริง (float) |
%g |
เลขจำนวนจริง (float) |
%h |
เลขจำนวนเต็มแบบสั้น (short integer) |
%i |
เลขจำนวนเต็ม (int) |
%o |
เลขฐานแปด |
%s |
ข้อความสตริง |
%u |
เลขจำนวนเต็ม ไม่มีเครื่องหมาย |
%x |
เลขฐานสิบหก |
ตาราง รหัสรูปแบบข้อมูลของฟังก์ชัน printf() ซึ่งต้องสอดคล้องกับชนิดข้อมูลที่สั่งพิมพ์
นอกจากนี้ภายใน รหัสรูปแบบข้อมูลของฟังก์ชัน ยังสามารถใส่รหัสควบคุม (Escape Sequence) เข้าไปได้อีก ซึ่งรหัสควบคุมเหล่านี้จัดเป็นส่วนหนึ่งของคำสั่งควบคุมการแสดงผล ด้วยการใช้เครื่องหมาย \ (backslash) และตามด้วยรหัสควบคุม
รหัสควบคุมข้อมูล |
ความหมาย |
\0 |
ค่าว่าง (null) |
\a |
ส่งเสียงปิ๊ป 1 ครั้ง |
\b |
ถอยหลังหนึ่งตัวอักษร (back space) |
\f |
ขึ้นหน้าใหม่ (form feed) |
\n |
ขึ้นบรรทัดใหม่ (new line) |
\r |
ย้ายเคอร์เซอร์กลับไปที่ต้นบรรทัด |
\t |
แท็บแนวนอน (horizontal tab) |
\v |
แท็บแนวตั้ง (vertical tab) |
\' |
พิมพ์เครื่องหมาย ' |
\" |
พิมพ์เครื่องหมาย " |
\\ |
พิมพ์เครื่องหมาย \ |
ตาราง แสดงรหัสควบคุมข้อมูล
ตัวอย่าง การใช้คำสั่ง printf() แสดงผลข้อความธรรมดาออกทางหน้าจอ

หน้าจอแสดงผลลัพธ์ :

อธิบายโปรแกรม
ฟังก์ชั่น printf() ในข้อนี้มีการใช้ string format ในรูปแบบข้อความธรรมดาผสมกับรหัสรูปแบบข้อมูล และเมื่อมีรหัสรูปแบบข้อมูลแล้ว จะต้องมีการรับค่าพารามิเตอร์อีกตัวหนึ่ง สำหรับเป็นข้อมูลที่จะนำมาแทนที่ลงในตัวแทนชนิดข้อมูลนั้น จากตัวอย่าง argument list คือค่าคงที่
ตัวอย่าง การใช้คำสั่ง printf() แสดงผลข้อความธรรมดาออกทางหน้าจอ

คำอธิบายโปรแกรม :
บรรทัดที่ 1 |
นำเฮดเดอร์ไฟล์ชื่อ stdio.h เข้ามาร่วมในการแปลผล เมื่อมีการใช้งานฟังก์ชัน printf() |
บรรทัดที่ 2 |
ฟังก์ชัน main() ซึ่งเป็นฟังก์ชันหลักของโปรแกรม การทำงานจะเริ่มต้นที่ฟังก์ชันนี้ |
บรรทัดที่ 5,6 |
สร้างตัวแปรชนิดจำนวนเต็ม x และ y ให้มีค่า 10 และ 5 ตามลำดับ |
บรรทัดที่ 7 |
เรียกใช้ฟังก์ชัน printf() ซึ่งเป็นฟังก์ชันมาตรฐานของภาษาซีที่ทำหน้าที่แสดงผลข้อมูลออกทางจอภาพ ในตัวอย่างจะแสดงข้อความ Hello World แล้วขึ้นบรรทัดใหม่ด้วย รหัสควบคุม \n |
บรรทัดที่ 8 |
เรียกใช้ฟังก์ชัน printf() แสดงผลข้อความ Variable Value = 10 ออกทางจอภาพ โดยแสดงค่าตัวแปร x แทนที่ตำแหน่งของ %d ซึ่ง x มีค่าเท่ากับ 10 แล้วขึ้นบรรทัดใหม่เพราะใช้รหัสควบคุม \n |
บรรทัดที่ 9 |
เว้นช่องว่างเป็นระยะ 1 แท็บ เมื่อเจอรหัสควบคุม \t เรียกใช้ฟังก์ชัน printf() แสดงผลข้อความ Value x+y = 15 ออกทางจอภาพ โดยแสดงผลลัพธ์ของนิพจน์ x+y (10+5) ซึ่งก็คือ 15 แทนที่ตำแหน่งของ %d แล้วขึ้นบรรทัดใหม่เพราะใช้รหัสควบคุม \n |
บรรทัดที่ 10 |
เรียกใช้ฟังก์ชัน printf() แสดงผลข้อความ Value x-y = 5 ออกทางจอภาพ โดยแสดงผลลัพธ์ของนิพจน์ x-y (10-5) ซึ่งก็คือ 5 แทนที่ตำแหน่งของ %d แล้วขึ้นบรรทัดใหม่เพราะใช้รหัสควบคุม \n |
บรรทัดที่ 11 |
เรียกใช้ฟังก์ชัน printf() แสดงผลข้อความ Value x*y = 50 ออกทางจอภาพ โดยแสดงผลลัพธ์ของนิพจน์ x*y (10*5) ก็คือ 50 แทนที่ตำแหน่งของ %d แล้วขึ้นบรรทัดใหม่เพราะใช้รหัสควบคุม \n |
บรรทัดที่ 12 |
เรียกใช้ฟังก์ชัน printf() แสดงผลข้อความ Value x/y = 2 ออกทางจอภาพ โดยแสดงผลลัพธ์ของนิพจน์ x/y (10/5) ก็คือ 2 แทนที่ตำแหน่งของ %d แล้วขึ้นบรรทัดใหม่เพราะใช้รหัสควบคุม \n |
การควบคุมขนาดพื้นที่แสดงผล
ตามปกติในการแสดงผลโปรแกรมจะเตรียมพื้นที่ให้พอดีกับข้อความ เช่น ถ้าจะแสดงข้อความ HELLO ซึ่งมี 5 ตัวอักษร โปรแกรมจะจัดเตรียมพื้นที่ไว้ให้พอดีสำหรับ 5 ตัวอักษร ดังแสดงรูปต่อไปนี้

สามารถเพิ่มพื้นที่ในการแสดงผลได้ตามต้องการ เช่น กำหนดให้แสดงข้อความ HELLO ในพื้นที่ขนาด 8 ตัวอักษร โปรแกรมจะแสดงข้อความชิดด้านขวาของพื้นที่ที่จองไว้ โดยจะเว้นพื้นที่ว่างทางด้านซ้ายอีก 3 ช่องที่เหลือเอาไว้ ดังรูป

วิธีกำหนดขนาดพื้นที่การแสดงผล ให้ใส่ตัวเลขขนาดของพื้นที่ที่ต้องการไว้หลังเครื่องหมาย % ในรหัสรูปแบบข้อมูล ดังแสดงตัวอย่างต่อไปนี้
ตัวอย่าง การจัดขนาดพื้นที่การแสดงผล ด้วยฟังก์ชั่น printf() ในลักษณะต่างๆ

ผลลัพธ์ของโปรแกรม


ฟังก์ชั่น scanf () เป็นฟังก์ชันการรับข้อมูลจากคีย์บอร์ดมาแสดงบนหน้าจอ โดยข้อมูลที่รับเข้ามา สามารถเป็นตัวแปรชนิดตัวเลข ตัวอักขระหนึ่งตัว หรือข้อความสตริงได้ มีรูปแบบดังนี้
scanf(format control, &argument list); |
โดยที่
format control คือ การใช้รหัสรูปแบบข้อมูล เพื่อกำหนดชนิดของข้อมูลที่จะรับเข้ามาจากคีย์บอร์ด โดยรหัสรูปแบบข้อมูล จะใช้ชุดเดียวกับรหัสรูปแบบข้อมูลของคำสั่ง printf()
argument list คือ ตัวแปรที่จะใช้เก็บค่าข้อมูลที่รับเข้ามาจากคีย์บอร์ด โดยชนิดของตัวแปรจะต้องสอดคล้องกับรหัสรูปแบบข้อมูลที่กำหนดไว้ นอกจากนี้หน้าชื่อของตัวแปรจะต้องนำหน้าด้วยเครื่องหมาย & ยกเว้นตัวแปรสตริงสำหรับเก็บข้อความเท่านั้นที่ไม่ต้องนำหน้าด้วยเครื่องหมาย &
จำเป็นต้องจับคู่ระหว่างรหัสรูปแบบข้อมูล กับชนิดข้อมูลให้ถูกต้อง เช่น %d ใช้กับตัวแปรชนิด int
ตัวอย่าง การใช้คำสั่ง scanf() เพื่อรับค่าข้อมูล

ผลลัพธ์ของโปรแกรม

ฟังก์ชั่น scanf() เมื่ออ่านพบช่องว่างจะตัดข้อความนั้นออก
อธิบายโปรแกรม

ประกาศตัวแปร age(อายุ) ให้มีชนิดข้อมูลเป็นจำนวนเต็ม(int)
ใช้ฟังก์ชัน printf() แสดงข้อความ Enter your age :
ใช้ฟังก์ชัน scanf() รับค่า age จากแป้นพิมพ์ ใส่ & นำหน้าตัวแปร (พิมพ์เสร็จแล้วกด Enter)
ใช้รหัสรูปแบบ %d แสดงว่าข้อมูลที่รับเข้ามาเป็นเลขจำนวนเต็ม ซึ่งจะถูกเก็บไว้ที่ตัวแปร age
ใช้ฟังก์ชัน printf() แสดงข้อความ Enter your age : และค่าอายุที่รับเข้ามา
โดยแสดงค่าตัวแปร age แทนที่ตำแหน่งของ %d (รหัสรูปแบบข้อมูลแบบเลขจำนวนเต็ม)

ประกาศตัวแปร name(ชื่อ) ให้มีชนิดข้อมูลแบบตัวอักษร กำหนดขนาดไม่เกิน 50 ตัวอักษร
ใช้ฟังก์ชัน printf() แสดงข้อความ Enter your name :
ใช้ฟังก์ชัน scanf() รับค่า name จากแป้นพิมพ์ สตริงไม่ต้องใส่ & นำหน้าตัวแปร
ใช้ฟังก์ชัน printf() แสดงข้อความ your name : และค่าชื่อที่รับเข้ามา
โดยแสดงค่าตัวแปร name แทนที่ตำแหน่งของ %s (รหัสรูปแบบข้อมูลแบบข้อความสตริง)

ประกาศตัวแปร x , y , sum ให้มีชนิดข้อมูลเป็นจำนวนเต็ม (int)
ใช้ฟังก์ชัน printf() แสดงข้อความ Enter The Length is : และ Enter The Length is :
ใช้ฟังก์ชัน scanf() รับค่าตัวแปร x , y จากแป้นพิมพ์ ใส่ & นำหน้าตัวแปร
ใช้ฟังก์ชัน printf() แสดงข้อความ Enter The Length is : และ Enter The Length is : และค่าที่รับเข้ามา
ประกาศใช้ตัวแปร sum เพื่อเก็บค่าผลรวมของนิพจน์ x*y
ใช้ฟังก์ชัน printf() แสดงข้อความ The area is: และค่า sum ซึ่งได้จากผลรวมของนิพจน์ x*y
โดยแสดงค่าตัวแปร x , y , sum แทนที่ตำแหน่งของ %d (รหัสรูปแบบข้อมูลแบบเลขจำนวนเต็ม)
การรับและแสดงผลข้อมูลแบบตัวอักษร(อักขระ)
การรับและการแสดงผลข้อมูลแบบตัวอักษร นอกจากจะใช้ฟังก์ชั่น scanf() และ printf() แล้ว ยังมีฟังก์ชั่นเฉพาะในการรับข้อมูลแบบตัวอักษร คือ getchar() และแสดงผลข้อมูลแบบตัวอักษร คือ putchar()

getchar() คือฟังก์ชั่นสำหรับรับข้อมูลผ่านทางแป้นพิมพ์ โดยจะรับตัวอักษร 1 ตัวเท่านั้น
รูปแบบการใช้งานฟังก์ชัน
getchar( ); หรือ char_variable = getchar( ); |
getchar( ) คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระจากคีย์บอร์ด โดยฟังก์ชันนี้จะไม่มี
argument char_variable คือ ตัวแปรชนิด char ซึ่งจะเก็บข้อมูล 1 ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
ตัวอย่าง การใช้คำสั่ง getchar( ) เพื่อรับค่าข้อมูล

ผลลัพธ์ของโปรแกรม
เมื่อรันโปรแกรม จะเห็นข้อความ Enter a character : ปรากฏขึ้นมาพร้อมเคอร์เซอร์รอรับตัวอักษร
เมื่อกรอกตัวอักษร แล้วกดปุ่ม Enter โปรแกรมจะทำงานต่อไป โดยโชว์อักขระที่รับมาเพียง 1 ตัว

อธิบายโปรแกรม
บรรทัดที่ 4 |
สร้างตัวแปร ch เพื่อเก็บค่าอักขระ |
บรรทัดที่ 5 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ Enter a character : ออกมาทางหน้าจอ |
บรรทัดที่ 7 |
เรียกใช้ฟังก์ชัน getchar() เพื่อรับค่าจากคีย์บอร์ด 1 ตัวอักขระ โดยเก็บไว้ที่ตัวแปร ch |
บรรทัดที่ 8 |
เรียกใช้ฟังก์ชัน printf() เพื่อแสดงข้อความที่กำหนด และตัวอักษรที่รับค่าจากตัวแปร ch |

คำสั่ง putchar() เป็นคำสั่งใช้สำหรับแสดงผลอักขระ โดยเฉพาะออกทางหน้าจอ มีรูปแบบการเขียนคำสั่ง ดังนี้
โดยที่
putchar( ) คือ ฟังก์ชันที่ใช้แสดงผลลัพธ์ทีละ 1 ตัวอักขระออกทางจอภาพ
ch คือ ตัวแปรชนิดอักขระ (char) ที่เขียนภายในเครื่องหมาย Single Quote (‘’)
ตัวอย่าง การใช้คำสั่ง putchar() ในการแสดงผลอักขระออกทางหน้าจอ

อธิบายโปรแกรม
บรรทัดที่ 4 |
สร้างตัวแปร ch เก็บอักษร O |
บรรทัดที่ 5 |
เรียกใช้ฟังก์ชัน putchar() แสดงอักษร O ที่เก็บไว้ในตัวแปร first ออกมาทางหน้าจอ |
บรรทัดที่ 6 |
เรียกใช้ฟังก์ชัน putchar() แสดงอักษร K ออกมาทางหน้าจอ |
ตัวอย่าง การใช้คำสั่งฟังก์ชั่น putchar() และ getchar()

ผลลัพธ์ของโปรแกรม

อธิบายโปรแกรม
บรรทัดที่ 4 |
สร้างตัวแปร ch เพื่อเก็บค่าอักขระ |
บรรทัดที่ 5 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ Enter a character : ออกมาทางหน้าจอ |
บรรทัดที่ 6 |
เรียกใช้ฟังก์ชัน getchar() เพื่อรับค่าจากคีย์บอร์ด 1 ตัวอักขระ โดยเก็บไว้ที่ตัวแปร ch |
บรรทัดที่ 7 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ your character is : ออกมาทางหน้าจอ |
บรรทัดที่ 8 |
เรียกใช้ฟังก์ชัน putchar() แสดงอักษรที่รับจากคีย์บอร์ดด้วยฟังก์ชัน getchar() |

ฟังก์ชัน getch() เป็นอีกฟังก์ชันที่รับข้อมูลชนิดอักขระจากคีย์บอร์ดได้ครั้งละ 1 ตัวอักษรเหมือนกับฟังก์ชัน getchar() แต่การรับข้อมูลด้วยฟังก์ชัน getch() เมื่อผู้ใช้กรอกข้อมูล 1 ตัวอักษรแล้ว โปรแกรมจะทำงานต่อทันทีโดยไม่ต้องกันปุ่ม Enter เพียงแค่เราป้อนอักขระเข้ามา 1 ตัว โปรแกรมจะกลับไปทำงานต่อทันที และตัวอักขระที่เราป้อนจะไม่แสดงขึ้นมาให้เห็น โดยมีรูปแบบการเขียนฟังก์ชัน ดังนี้
getch( ); หรือ char_variable = getch( ); |
โดยที่ :
char_variable คือ ตัวแปรชนิด char ซึ่งจะเก็บข้อมูล 1 ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
getch( ) คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระจากคีย์บอร์ด โดยฟังก์ชันนี้จะไม่มี argument ดังนั้นอาจจะใช้ getch(void) แทนคำว่า getch( ) ก็ได้ แต่นิยมใช้ getch( ) มากกว่า
ฟังก์ชั่น getch( ) ถูกประกาศไว้ในเฮดเดอร์ไฟล์ conio.h จึงต้องใส่เฮดเดอร์ไฟล์ conio.h ไว้ข้างต้น
ตัวอย่าง การใช้คำสั่ง getch() ในการรับข้อมูลจากคีย์บอร์ด

ผลลัพธ์ของโปรแกรม

เมื่อรันโปรแกรม จะเห็นข้อความ Enter single a character : ปรากฏขึ้นมาพร้อมเคอร์เซอร์รอรับตัวอักษร เมื่อกรอกตัวอักษร เพียงตัวใดตัวหนึ่งเท่านั้น โปรแกรมก็จะทำงานต่อโดยไม่ต้องกด Enter
อธิบายโปรแกรม
บรรทัดที่ 1 |
นำเฮดเดอร์ไฟล์ชื่อ coino.h เมื่อมีการเรียกใช้งานฟังก์ชัน getch() |
บรรทัดที่ 5 |
สร้างตัวแปร ch เพื่อเก็บค่าอักขระ |
บรรทัดที่ 6 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ Enter single a character : ออกมาทางหน้าจอ |
บรรทัดที่ 7 |
เรียกใช้ฟังก์ชัน getch() เพื่อรับค่าจากคีย์บอร์ด 1 ตัวอักขระ โดยเก็บไว้ที่ตัวแปร ch |
บรรทัดที่ 8 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ your type a character is : ออกมาทางหน้าจอ และแสดงอักษรที่รับจากคีย์บอร์ดด้วยฟังก์ชัน getch () จากตัวแปร ch |

เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง 1 ตัวอักขระ เหมือนฟังก์ชัน getch( ) แตกต่างกันตรงที่ข้อมูลที่ป้อนเข้าไป จะปรากฏให้เห็นบนจอภาพด้วย นอกนั้นมีการทำงานและลักษณะการใช้งานเหมือนฟังก์ชัน getch( ) ทุกประการ มีรูปแบบการใช้งานดังนี้ การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกด Enter
getche( ); หรือ char_var = getche( ); |
การรับและแสดงผลข้อมูลแบบสตริง
การรับและการแสดงผลข้อมูลแบบสตริง นอกจากจะใช้ฟังก์ชั่น scanf() และ printf() แล้ว ยังมีฟังก์ชั่นเฉพาะในการรับข้อมูลแบบสตริง คือ gets() และแสดงผลข้อมูลแบบสตริง คือ puts()
ข้อมูลประเภทสตริง คือ กลุ่มข้อความ ซึ่งท้ายข้อความจะมีการผนวกค่า Null หรือรหัสควบคุม \0 ปะต่อท้ายโดยอัตโนมัติ เพื่อใช้บ่งบอกถึงจุดสิ้นสุดของข้อความนั้นๆ ทั้งนี้การจัดเก็บข้อความสตริงในภาษา C จะจัดเก็บในรูปแบบ Array สำหรับฟังก์ชัน gets( ) และ puts( ) ถือเป็นอีกทางเลือกหนึ่งของการนำไปใช้ เพื่อการรับค่าและแสดงผล แทนที่จะใช้ฟังก์ชัน scanf( ) หรือ printf( ) เท่านั้น

นอกจากคำสั่งในการรับข้อมูลชนิดอักขระหรือตัวอักษรแล้ว การรับข้อความจากคีย์บอร์ดก็มีคำสั่งพิเศษให้เรียกใช้งานเช่นกัน ก็คือฟังก์ชั่น gets() มีรูปแบบดังนี้
โดยที่ :
gets() เป็นอีกฟังก์ชันที่รับข้อมูลเป็นข้อความจากคีย์บอร์ด ซึ่งเป็นฟังก์ชันสำหรับข้อความโดยเฉพาะ โดยมีรูปแบบการเขียนฟังก์ชัน ดังนี้
str เป็นตัวแปรที่ใช้สำหรับเก็บข้อความ ซึ่งจะต้องสร้างเตรียมไว้ก่อนที่จะเรียกใช้งานฟังก์ชัน gets()
ตัวอย่าง การใช้ฟังก์ชั่น gets() ในการรับข้อความจากคีย์บอร์ด

ผลลัพธ์ของโปรแกรม

เมื่อรันโปรแกรม จะเห็นข้อความ Enter your name : ปรากฏขึ้นมาพร้อมเคอร์เซอร์รอรับข้อความ
เมื่อผู้ใช้พิมพ์ข้อความ และกด <Enter> โปรแกรมก็จะทำงานโดยแสดงผลที่หน้าจอ
ฟังก์ชั่น gets() สามารถรับค่าที่เป็นช่องว่างได้ (space) โดยรับไปจนกว่าจะกด <Enter>
อธิบายโปรแกรม
บรรทัดที่ 4 |
สร้างตัวแปรชนิด char ชื่อ name[20] เพื่อเก็บชนิดข้อความ ความยาว 20 ตัวอักษร |
บรรทัดที่ 5 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ Enter your name : ออกมาทางหน้าจอ |
บรรทัดที่ 6 |
เรียกฟังก์ชัน gets() เพื่อรับข้อความและเก็บไว้ที่ตัวแปร name โดยพิมพ์ข้อความและจะต้องกดปุ่ม Enter |
บรรทัดที่ 7 |
เรียกใช้ฟังก์ชัน printf() เพื่อแสดงข้อความ Your name is : และข้อความที่รับค่าจากตัวแปร name |

คำสั่ง puts() มาจากคำว่า puts string เป็นฟังก์ชั่นสำหรับแสดงข้อความสตริงออกทางหน้าจอ หลักการใช้งานคือส่งค่าที่อยู่ (address) ของสตริงเข้ามาที่ฟังก์ชั่น puts() โดยมีรูปแบบการเขียนคำสั่ง ดังนี้
โดยที่ str เป็นตัวแปรที่เก็บข้อมูลชนิดข้อความ (string) ที่เขียนภายในเครื่องหมาย Double Quote (“ ”)
ตัวอย่าง การแสดงผลโดยใช้ฟังก์ชั่น gets() และ puts()

ผลลัพธ์ของโปรแกรม

อธิบายโปรแกรม
บรรทัดที่ 4 |
สร้างตัวแปร message เก็บข้อมูลชนิดข้อความ(char) Welcome to C Language |
บรรทัดที่ 5 |
เรียกใช้ฟังก์ชัน puts() แสดงข้อความที่เก็บไว้ในตัวแปร message ออกมาทางหน้าจอหลังจากแสดงข้อความแล้วจะขึ้นบรรทัดใหม่ให้ด้วย |
บรรทัดที่ 6 |
เรียกใช้ฟังก์ชัน puts() แสดงข้อความ What your name? ออกมาทางหน้าจอบรรทัดใหม่เพราะมีการใช้ \n |
บรรทัดที่ 7 |
ประกาศตัวแปรชนิด char ชื่อ name[20] เพื่อเก็บชนิดข้อความ ความยาว 20 ตัวอักษร |
บรรทัดที่ 8 |
เรียกใช้ฟังก์ชัน printf() แสดงข้อความ Enter your name? ออกมาทางหน้าจอ |
บรรทัดที่ 9 |
เรียกใช้ฟังก์ชัน gets() เพื่อรับข้อความและเก็บไว้ที่ตัวแปร name พิมพ์ข้อความและจะต้องกดปุ่ม Enter |
บรรทัดที่ 10 |
เรียกใช้ฟังก์ชัน puts() แสดงข้อความที่เก็บไว้ในตัวแปร name ออกมาทางหน้าจอ |


|