หน่วยที่ 6คำส่ังกำรแสดงผลลัพธ์และกำรรับข้อมลู ศรีวำรี สุจริตชยั มทร.ตะวันออก วทิ ยำเขตจนั ทบรุ ี
1 หน่วยที่ 6คำสั่งกำรแสดงผลลพั ธ์และกำรรับข้อมูล6.1 คำสั่งกำรแสดงผลลพั ธ์ 6.1.1 คำสั่ง printf 6.1.2 คำสง่ั putchar 6.1.3 คำส่งั puts6.2 กำรใชง้ ำนคำส่ังแสดงผล 6.2.1 กำรเขียนโปรแกรมกำรโดยใชค้ ำสั่งแสดงผล6.3 คำส่งั กำรรับขอ้ มูล 6.3.1 คำสง่ั scanf 6.3.2 คำสั่ง getchar 6.3.3 คำสงั่ getch 6.3.4 คำสง่ั getche 6.3.5 คำสัง่ gets6.4 กำรใชง้ ำนคำสั่งรับขอ้ มูล 6.4.1 กำรเขียนโปรแกรมโดยใชค้ ำสง่ั รับขอ้ มูล6.5 กำรใชง้ ำนคำสั่งรับขอ้ มูลและแสดงผล 6.5.1 กำรเขียนโปรแกรมโดยใชค้ ำสงั่ รับและแสดงผลขอ้ มูล เน้ือหำในหน่วยน้ีจะกล่ำวถึงวิธีกำรรับขอ้ มูลผ่ำนทำงคียบ์ อร์ดเขำ้ มำในโปรแกรม (input) เพื่อนำขอ้ มูลน้นั ไปประมวลผลให้ไดผ้ ลลพั ธ์ตำมท่ีผูเ้ ขียนโปรแกรมตอ้ งกำร แลว้ นำผลลพั ธ์ที่ไดแ้ สดงออกทำงจอภำพ (output) โดยจะกล่ำวถึงกำรแสดงผลทำงหนำ้ จอก่อน แลว้ ตำมดว้ ยกำรรับขอ้ มูล 4.1 กำรแสดงผลข้อมูล (output) กำรแสดงผลขอ้ มูลออกทำงหน้ำจอสำมำรถทำไดง้ ่ำย โดยเรียกใช้คำสั่งหรือฟังก์ชนั มำตรฐำนที่ภำษำซีเตรียมไวใ้ หใ้ ช้ 4.1.1 คำส่ัง printf คำส่ัง printf ถือวำ่ เป็ นคำส่ังพ้ืนฐำนที่สุดในกำรแสดงผลขอ้ มูลทุกชนิดออกทำงหนำ้ จอ ไม่ว่ำจะเป็ นจำนวนเต็ม( int) , ทศนิยม (float) , ขอ้ ควำม (string) หรือตวั อกั ษร (char) นอกจำกน้ีคำส่ังยงั มีควำมยดื หยนุ่ สูง โดยเรำสำมำรถกำหนดหรือจดั รูปแบบกำรแสดงผลใหม้ ีระเบียบหรือเหมำะสมตำมควำมตอ้ งกำรไดอ้ ีกดว้ ย
2รูปแบบของคำสั่ง printf คือ printf (\"string_format\" , data_list);โดย string_format คือ ข้อควำมที่ต้องกำรแสดงผล ซ่ึงอำจเป็ นข้อควำมธรรมดำๆ หรื อเป็ นสัญลกั ษณ์ที่ใช้เป็ นตวั แทนชนิดขอ้ มูลต่ำงๆ เช่น %d , %c เป็ นตน้ หรือ Escape character ท่ีใช้ในกำรจดั รูปแบบของกำรแสดงผล data_list คือ ขอ้ มูลที่จะแสดงผล ซ่ึงอำจเป็นคำ่ คงที่, ตวั แปร หรือนิพจนใ์ ดๆตำรำง : ตวั แทนชนิดขอ้ มูลแตล่ ะประเภทชนิดขอ้ มูล ตวั แทนชนิดของขอ้ มูล char %c string %s int %d float %f double %Lfตำรำงแสดง Escape characterรหสั ควำมหมำย\0 ค่ำวำ่ ง (null character)\n ข้นั บรรทดั ใหม่ (new line)\r เลื่อนเคอร์เซอร์ไปทำงซำ้ ยสุด (carriage return)\t แทบ็ แนวนอน (horizontal tab)\/ พิมพเ์ คร่ืองหมำย /\// พิมพเ์ คร่ืองหมำย //\\ พิมพเ์ ครื่องหมำย \ตวั อย่ำง กำรใชค้ ำส่ัง printf แสดงขอ้ ควำม printf (“My first program” ) ;
3ผลกำรทำงำนท่ีปรำกฏบนหนำ้ จอคือ My first programตวั อย่ำง กำรใชค้ ำส่งั printf แสดงขอ้ ควำมและค่ำคงท่ี printf (“1 + 1 = %d ”, 2 ) ;ผลกำรทำงำนท่ีปรำกฏบนหนำ้ จอคือ 1+1=2ตวั อย่ำง กำรใชค้ ำสง่ั printf แสดงขอ้ ควำมและค่ำของตวั แปร int num = 10 ; printf (“The number is %d ”, num ) ;ผลกำรทำงำนที่ปรำกฏบนหนำ้ จอคือ The number is 10ตวั อย่ำง กำรใชค้ ำสงั่ printf แสดงขอ้ ควำม,ค่ำของตวั แปรและคำ่ ของนิพจน์ int num1 , num2 ; num1 = 5 ; num2 = 10 ; printf (“%d + %d = %d ”, num1, num2, num1+num2 ) ;ผลกำรทำงำนที่ปรำกฏบนหนำ้ จอคือ 5 + 10 = 15ตวั อยำ่ ง โปรแกรมกำรแสดงขอ้ ควำมทำงจอภำพ #include <stdio.h> int main() { printf(\"This is my first program.\n\"); printf(\"The subject is Computer programming 1\n\"); printf(\"Write by student\n\"); return 0; }
4ผลกำรทำงำนท่ีปรำกฏบนหนำ้ จอคือ This is my first program. The subject is Computer programming 1 Write by student _ 4.1.2 คำส่ัง putchar putchar( ) เป็นคำสงั่ สำหรับแสดงผลขอ้ มูล 1 ตวั อกั ษรออกทำงจอภำพรูปแบบของคำสงั่ putchar คือ putchar (variable);โดย Variable คือช่ือตวั แปรที่กำหนดข้ึนตวั อย่ำง โปรแกรมกำรแสดงตวั อกั ษรทำงจอภำพโดยใชค้ ำสงั่ putchar #include <stdio.h> int main() { char grade ; grade = 'A' ; putchar(grade); return 0; }ผลกำรทำงำนท่ีปรำกฏบนหนำ้ จอคือ A 4.1.3 ฟังก์ช่ัน puts puts( ) เป็นฟังกช์ นั สำหรับแสดงผลขอ้ ควำมออกทำงจอภำพรูปแบบของคำสั่ง puts คือ puts (variable);
5โดย Variable คือช่ือตวั แปรที่กำหนดข้ึนตวั อยำ่ ง โปรแกรมกำรแสดงขอ้ ควำมทำงจอภำพโดยใชค้ ำสัง่ puts #include <stdio.h> int main() { char name[20] = \"Programming\" ; puts(name); return 0; }ผลกำรทำงำนที่ปรำกฏบนหนำ้ จอคือ Programming 4.2 กำรรับข้อมูล กำรรับขอ้ มูลของภำษำซี มีคำสง่ั ท่ีใชใ้ นกำรรับขอ้ มูลจำกคียบ์ อร์ดหลำยคำสัง่ ดว้ ยกนั คือ scanf() ,getchar(), getch(), getche() และ gets() ซ่ึงแต่ละคำสงั่ มีรำยละเอียดของกำรใชง้ ำนดงั น้ี 4.2.1 scanf() scanf() เป็นฟังกช์ นั่ มำตรฐำนสำหรับรับขอ้ มูลจำกคียบ์ อร์ด โดยสำมำรถรับขอ้ มูลไดท้ ุกประเภทไม่วำ่ จะเป็นเลขจำนวนเตม็ เลขทศนิยม ตวั อกั ขระ หรือขอ้ ควำมรูปแบบของคำสัง่ scanf() คือ scanf(\"string_format\", address_list);โดย string_format จะอยู่ในรูปแบบสัญลกั ษณ์ท่ีใช้เป็ นตวั แทนชนิดขอ้ มูลต่ำงๆ เท่ำน้นั เช่น %d ,%c เป็นตน้ address_list เป็ นตวั ระบุที่อยู่ (address) ในหน่วยควำมจำที่จะใช้ในกำรเก็บข้อมูลท่ีรับเขำ้ มำดงั น้นั จะเรียกโดยอำ้ งถึงตวั แปรโดยตรงไม่ได้ แต่ตอ้ งอำ้ งถึงโดยใชเ้ ครื่องหมำย ampersand (&) นำหนำ้ช่ือตวั แปรท่ีตอ้ งกำรรับขอ้ มูลเขำ้ มำเกบ็ ไว้ ซ่ึงเป็ นกำรระบุที่อยูข่ องตวั แปรน้นั ในหน่วยควำมจำ แตใ่ นกรณีที่ตวั แปรน้นั เกบ็ ค่ำเป็นขอ้ ควำมในส่วนของ address_list ไมต่ อ้ งนำหนำ้ ดว้ ยเคร่ืองหมำย &ตัวอย่ำง กำรใชค้ ำสัง่ scanf() ในกำรรับขอ้ มูลเขำ้ มำเก็บในตวั แปรชนิดเลขจำนวนเตม็
6 int num ; scanf(\"%d\", &num);ตัวอย่ำง กำรใชค้ ำส่ัง scanf() ในกำรรับขอ้ มูลเขำ้ มำเก็บในตวั แปรชนิดเลขจำนวนทศนิยม float num ; scanf(\"%f\", &num);ตัวอย่ำง กำรใชค้ ำส่ัง scanf() ในกำรรับขอ้ มูลเขำ้ มำเกบ็ ในตวั แปรชนิดตวั อกั ษร char ans ; scanf(\"%c\", &ans);ตวั อย่ำง กำรใชค้ ำสง่ั scanf() ในกำรรับขอ้ มูลเขำ้ มำเก็บในตวั แปรชนิดขอ้ ควำม char ans[10] ; scanf(\"%s\", ans); ในกำรใชค้ ำส่งั scanf() น้นั เมื่อผใู้ ชเ้ รียกโปรแกรมข้ึนมำใชง้ ำนจะปรำกฏเครื่องหมำย เคอร์เซอร์(cursor) บนหนำ้ จอเพื่อรอรับคำ่ ซ่ึงบำงคร้ังจะทำใหผ้ ใู้ ชไ้ ม่เขำ้ ใจวำ่ คืออะไร ดงั น้นั ในกำรใชค้ ำสง่ั scanf()จึงควรใชค้ ู่กบั คำสงั่ printf() เพือ่ สื่อควำมหมำยใหผ้ ใู้ ชเ้ ขำ้ ใจ ตวั อยำ่ งเช่น int num ; printf(\"Input number : \") ; scanf(\"%d\", &num);จำกตวั อยำ่ งเม่ือเพ่ิมคำสั่ง printf() ก่อนหนำ้ คำสั่ง scanf() เหมือนเป็นคำถำมแลว้ รอคำตอบ ซ่ึงเม่ือผใู้ ช้เรียกใชโ้ ปรแกรมก็จะเขำ้ ใจไดว้ ำ่ โปรแกรมตอ้ งกำรขอ้ มูลอะไร ตัวอย่ำง โปรแกรมกำรหำพ้นื ที่สี่เหลี่ยมผนื ผำ้ #include <stdio.h> int main() { float width, length, area ; printf(\"Enter Width : \"); scanf(\"%f\", &width); printf(\"Enter Length : \"); scanf(\"%f\", &length); area = width * length ; printf(\"The area of Rectangle is %f\n\", area); return 0; }
7 กำรทำงำนและผลลพั ธ์ของโปรแกรม Enter Width : 2.5 Enter Length : 5 The area of Rectangle is 12.500000 จำกตวั อยำ่ งคำ่ ของพ้ืนที่สี่เหล่ียมผนื ผำ้ ที่แสดงจะปรำกฏจุดทศนิยมหลำยตำแหน่งถำ้ เรำตอ้ งกำรให้แสดงจุดทศนิยมตำมจำนวนที่เรำตอ้ งกำร เช่นถำ้ ตอ้ งกำรแสดงจุดทศนิยมเพียง 2 ตำแหน่งสำมำรถแกไ้ ขคำสง่ั ในกำรแสดงผลดงั น้ี printf(\"The area of Rectangle is %.2f\n\", area); กำรทำงำนและผลลพั ธ์ของโปรแกรม Enter Width : 2.5 Enter Length : 5 The area of Rectangle is 12.50 4.2.2 getchar() getchar() เป็นฟังกช์ นั่ มำตรฐำนสำหรับรับขอ้ มูลจำกคียบ์ อร์ด ท่ีใชใ้ นกำรรับขอ้ มูล 1 ตวั อกั ษรรูปแบบของคำส่ัง getchar() คือ variable = getchar();โดย variable เป็นช่ือตวั แปรที่ต้งั ข้ึนเพอ่ื ใชเ้ กบ็ ขอ้ มูล ตัวอย่ำง โปรแกรมกำรรับคำ่ ดว้ ย getchar() และแสดงผลดว้ ย printf() #include <stdio.h> int main() { char grade ; printf(\"Input grade : \") ; grade = getchar() ; printf(\"/nYou get grade %c\n\", grade); return 0; } กำรทำงำนและผลลพั ธ์ของโปรแกรม Input Grade : A You get grade A
8ตวั อยำ่ ง โปรแกรมกำรรับคำ่ ดว้ ย getchar() และแสดงผลดว้ ย putchar() #include <stdio.h> int main() { char grade ; printf(\"Input grade : \") ; grade = getchar() ; putchar(grade); return 0; }กำรทำงำนและผลลพั ธ์ของโปรแกรม Input Grade : A A 4.2.3 gets() gets() เป็นฟังกช์ น่ั มำตรฐำนใชร้ ับค่ำเขำ้ มำเป็นขอ้ ควำม ท่ีสิ้นสุดกำรรับโดยกำรกดป่ ุม Enter ส่งใหก้ บั ตวั แปรเกบ็ คำ่ ไว้รูปแบบของคำส่งั gets() คือ gets(variable);โดย variable เป็นช่ือตวั แปรท่ีต้งั ข้ึนเพอื่ ใชเ้ ก็บขอ้ มูล ตวั อยำ่ ง โปรแกรมกำรรับคำ่ ดว้ ย gets() และแสดงผลดว้ ย puts() #include <stdio.h> int main() { char name[20]; printf(\"Input name : \") ; gets(name) ; puts(name); return 0; } กำรทำงำนและผลลพั ธ์ของโปรแกรม Input name : malee lukdee malee lukdee
9ตวั อยำ่ ง โปรแกรมกำรรับค่ำดว้ ย gets() และแสดงผลดว้ ย printf() #include <stdio.h> int main() { char name[20]; printf(\"Input name : \") ; gets(name) ; printf(\"Your name is %s\n\", name); return 0; } กำรทำงำนและผลลพั ธ์ของโปรแกรม Input name : malee lukdee Your name is malee lukdeeตวั อยำ่ ง โปรแกรมกำรรับค่ำดว้ ย scanf() และแสดงผลดว้ ย printf() #include <stdio.h> int main() { char name[20]; printf(\"Input name : \") ; scanf(\"%s\", name) ; printf(\"Your name is %s\n\", name); return 0; } กำรทำงำนและผลลพั ธ์ของโปรแกรม Input name : malee lukdee Your name is maleeตวั อยำ่ ง โปรแกรมกำรรับและแสดงผลช่ือ-นำมสกุล #include <stdio.h> int main() { char first_name[20] , last_name[20] ; printf(\"Input name : \") ; scanf(\"%s %s\", first_name, last_name) ; printf(\"Your name is %s %s\n\", first_name, last_name); return 0; }
10 กำรทำงำนและผลลพั ธ์ของโปรแกรม Input name : malee lukdee Your name is malee lukdeeตวั อยำ่ ง โปรแกรมกำรบวกเลขจำนวนเตม็ 2 จำนวน #include <stdio.h> int main() { int num1, num2 , sum ; printf(\"Number 1 = \"); scanf(\"%d\", &num1); printf(\"Number 2 = \"); scanf(\"%d\", &num2); sum = num1 + num2 ; printf(\"/nSum of 2 number = %d\", sum); return 0; }กำรทำงำนและผลลพั ธ์ของโปรแกรม Number 1 = 5 Number 2 = 7 Sum of 2 number = 12ตวั อย่ำง โปรแกรมกำรบวกเลขจำนวนเตม็ 2 จำนวน โดยกำรรับคำ่ เลขจำนวนที่ 1 แลว้ เคำะวรรคเพื่อรับคำ่เลขจำนวนท่ี 2 #include <stdio.h> int main() { int num1, num2 , sum ; printf(\"Number 1 and Number 2 : \"); scanf(\"%d %d\", &num1, &num2); sum = num1 + num2 ; printf(\"/nSum of 2 number = %d\", sum); return 0; } กำรทำงำนและผลลพั ธ์ของโปรแกรม Number 1 and Number 2 : 5 7 Sum of 2 number = 12
11ท่ีมำ : อรพนิ ประวตั ิบริสุทธ์ิ, คูม่ ือเขียนโปรแกรมดว้ ย ภำษำ C ฉบบั สมบูรณ์, กรุงเทพฯ , โปรวชิ น่ั ,2556. ประยงค์ อู่ประสิทธ์ิวงศ,์ พ้ืนฐำนกำรเขียนโปรแกรมภำษำซีและอลั กอริทึม, คำ่ คงที่, กรุงเทพ,ไทยปริ้นทต์ ิ้งเซ็นเตอร์, 2558. ธีรวฒั น์ ประกอบผล, คูม่ ือกำรเขียนโปรแกรมภำษำC, กรุงเทพฯ : ซิมพลิฟำย, 2553. Stack overflow, gets() function in C. สืบคน้ 5 ตุลำคม 2558 จำกhttp://stackoverflow.com/questions/4346598/gets-function-in-c Tutorialspoint, C library function-getchar(). สืบคน้ 5 ตุลำคม 2558 จำกhttp://www.tutorialspoint.com/c_standard_library/c_function_getchar.htm
Search
Read the Text Version
- 1 - 12
Pages: