อ.สรวชิ ญช ัย วอ งรตั นานกุ ลู Tel: 09-5624-1995 e-Mail: [email protected]
การแสดงผลแลa ะการรับขอ มลู 1. การแสดงผลออกหนา จอดว ย printf() 2. การจัดรูปแบบการแสดงผล 3. แสดงผลทลี ะอกั ขระดว ย putchar() 4. แสดงผลเปนขอความดวย puts() 1. รับขอ มลู จากคียบอรด ดวย scanf() 2. รบั ขอมูลทีละอักขระดว ย getchar() 3. รบั ขอ มูลทลี ะอกั ขระดวย getch() 4. รบั ขอมลู เปน ขอ ความดว ย gets()
เปน ฟงกช ่นั มาตรฐานในภาษาซี รวมอยูใ น stdio.h สําหรับแสดง ขอ ความคา ของตวั แปรหรือผลการดาํ เนนิ การของนพิ จนอ อกทาง หcนonา จtอrol : printf(“control”, value1, value2, ...); ประกอบดวยขอ ความ, รหัสควบคมุ รูปแบบ (format code), และอกั ขระควบคุมการแสดงผล (carriage Control) value : คา ของตวั แปร,นพิ จน หรือฟงกช่นั ทตี่ อ งการแสดง char place[7] = “Market” printf(“Plz go to the %s.\\n”, place); OUTPUT Plz go to the Market.
2.การจัดรปู แบบการแสดงผล format code value printf(“\\t How old r u %d \\n”, age); Carriage control Carriage control Format code ใชสําหรับควบคมุ รปู แบบของ value นัน่ คือ ควบคุมคาของตัวแปร นิพจนห รือฟงกช ่นั (หรอื macro) ทจ่ี ะถกู แสดงออกหนาจอ Carriage control ใชสาํ หรับจดั รปู แบบการแสดงผล เชน \\n เพอ่ื ขึ้นบรรทดั ใหม, \\t เพอื่ เวน วา งไป 1 tab
รหัส การแสดงผล %d เลขจาํ นวนเต็ม (int, unsigned int, short, unsigned short, long, unsigned long) %u เลขจํานวนเต็มบวก (unsigned int, unsigned short, unsigned long) %o รูปแบบเลขฐานแปด %x รูปแบบเลขฐานสิบหก %f จาํ นวนจรงิ เลขทศนิยม (float, double, long double) %e เลขทศนิยมแบบ E ยกกําลัง (float, double, long double) %c อกั ขระ 1 ตัว แสดงผลตามรหัส Ascii (char) %s ขอความ (string) หรือเรยี กวา สายอกั ขระ %p ตวั ชตี้ าํ แหนง (pointer)
จํานวนหลักหลงั จุดทศนิยมกําหนดไดโ ดยคําสง่ั a%.nf หรอื a%.ne โดย n คอื จํานวนหลักหลงั จดุ ทศนิยมท่ีตอ งการแสดง float x1 = 17.765, x2 = 1.578e+03; 17.7650 void main() { 17.8 1.58e+003 printf(“%.4f\\n”,x1); 1.6e+003 printf(“%.1f\\n”,x1); 17.4 printf(“%.2e\\n”,x2); 17.3 printf(“%.1e\\n”,x2); 1.25e+003 printf(“%.1f\\n”,17.350); 1.24e+003 printf(“%.1f\\n”,17.349); printf(“%.2e\\n”,1.245e+03); printf(“%.2e\\n”,1.244e+03); }
ขอความสามารถถกู แสดงเพยี งบางสวนเมอ่ื ใชค าํ สั่ง %a m.ns โดย n คือจาํ นวนอกั ขระทตี่ อ งการใหแสดง และ m คือพ้นื ที่ที่ใชแสดงผล %-m.ns ทาํ ใหขอ ความทถ่ี กู แสดงชิดขอบดา นซาย #include<stdio.h> char message[] = “body & mind”; void main() { printf(“%sX\\n”,message); printf(“%.6sX\\n”,message); printf(“%12.6sX\\n”,message); body & mindX printf(“%-12.6sX\\n”,message); body &X printf(“%sX\\n”,“1234567890”); ______body &X printf(“%sX\\n”,“x = 5 * 90”); body &______X 1234567890X } X = 5 * 90X
Control characters ชุดอักขระหลกี ทใ่ี ชใ นการควบคุมการแสดงผล (Control character) และตัวอักษร ‘\\’ จะตองแสดงโดยใช escape sequences คือ ข้นึ ตน a ดวย ‘\\’ และตามดว ยอักษรนน้ั หรืออักษรท่แี ทนความหมายอืน่ a ใชสาํ หรบั เคลือ่ นเคอรเซอรไปยงั ตาํ แหนง ท่ตี อ งการ (Carriage character) \\n new line (ข้นึ บรรทัดใหม) \\t tab (แท็บในแนวนอน) \\b backspace (ยอ นกลับไป 1 ตัวอักษร) \\r carriage return (ใหเคอรเซอรกลับไปอยูตนบรรทดั ) \\v vertical tab (แทบ็ ในแนวต้งั ) \\f form feed (ขึ้นหนา ใหม)
Control characters ‘\\’ ทใี่ ชรว มกบั อักขระบางตวั แลว ไมไดท าํ ใหเ คอรเซอรเ คลื่อน a \\0 null (อกั ขระวาง) \\a bell (สง เสียง Beep) \\ooo Octal character แทนอกั ขระที่มคี า ascii เทา กับ ooo ในระบบเลขฐาน 8 (คลายกบั %c) a \\xhh Hexadecimal character แทนอกั ขระท่ีมคี า ascii เทากบั hh ในระบบเลขฐาน 16 เชน “\\x48 \\x45 \\x4c \\x4c \\x4f” แทน “H E L L O” a \\’ single quote (พมิ พ ’) \\” double quote (พมิ พ ”) \\\\ backslash (พิมพ \\) a
1. #include<stdio.h> 2. void main() { 3. printf(“Information\\tTechnology\\n”); 4. printf(“C Lang”); 5. printf(“\\b\\b\\b\\bProgramming\\n”); 6. } OUTPUT
putchar() ใชแ สดงอกั ขระออกทางหนา จอ putchar(char); o char : เปน ขอ มูลหรือตัวแปรชนดิ char #include<stdio.h> char first = ‘O’; void main() { putchar(first); output putchar(‘K’); OK }
puts() ใชแสดงขอความออกทางหนา จอ puts(str); ostr : เปน ขอ มลู หรอื ตัวแปรทเี่ กบ็ ขอมูลชนิด string #include<stdio.h> char message[ ] = “C language”; void main() { puts(message); output puts(“is easy but useful”); C language } is easy but useful
การแสดงผลแลa ะการรับขอ มลู 1. การแสดงผลออกหนา จอดว ย printf() 2. การจัดรูปแบบการแสดงผล 3. แสดงผลทลี ะอกั ขระดว ย putchar() 4. แสดงผลเปนขอความดวย puts() 1. รับขอ มลู จากคียบอรด ดวย scanf() 2. รบั ขอมูลทีละอักขระดว ย getchar() 3. รบั ขอ มูลทลี ะอกั ขระดวย getch() 4. รบั ขอมลู เปน ขอ ความดว ย gets()
เปน ฟง กชั่นมาตรฐานสําหรบั การรบั ขอมลู ดวยคยี บอรด มกี ารใชง าน คลา ยกับ printf()a โดยรบั ขอมลู ในรูปของรหสั ascii ที่ผูใ ชป อนผา น ทางคยี บ อรด แลวนําไปเก็บไวในตําแหนงทก่ี าํ หนดบนหนวยความจํา scanf(“control”,&variable1,&variable2,....); control : ประกอบดวยขอความและรหสั ควบคมุ รปู แบบ (format code) เชน s%d ซ่งึ ใชก าํ หนดวา ขอ มลู นําเขา จะตองเปน ชนดิ จํานวน เตม็ ฐาน 10 ที่จะนําไปเก็บไวท่ตี าํ แหนงบนหนวยความจาํ ที่ถกู จดั สรร ใหก บั ตวั แปร variable : ตวั แปรท่ใี ชเกบ็ ขอ มลู ทร่ี บั เขา มาจากคียบอรด โดย จะตอ งเขียนนาํ หนาชอ่ื ตวั แปรดวย &a ยกเวน ตวั แปรทเี่ ก็บขอ มูล ชนิดขอ ความ
pic 50:90 บรรทัดท่ี 9 ฟงกช ่นั scanf(“%d/%d/%d”,&day,&month,&year); เมื่อจะรับขอมลู เขาตองพมิ พเ ปน 04/10/1978 ตาม control ท่เี ขยี นไวใน “ ” ของฟง กช นั่ scanf() ถาพิมพเปน 04101978 จะทาํ ใหก ารรบั ขอ มลู จาก คยี บอรดเกิด error ในทํานองเดยี วกันบรรทัดท่ี 13 scanf(“%s %s”, name,surname); กต็ องเคาะเวนวรรคดว ย ตาม control ทเี่ ขยี น
getchar() ใชร ับขอ มูลทลี ะอักขระโดยตองลงทา ยดวย enter (ตอ งกด enter ดวย) variable = getchar(); o variable : ตัวแปรชนดิ char เกบ็ คาอักขระท่ถี ูกปอ นเขามา #include<stdio.h> char x; void main() { key printf(“Enter yr grade : ”); A x = getchar(); printf(“C Programming Grade : %c”,x); }
getch() ใชร ับขอมูลทีละอกั ขระเชน เดยี วกบั getchar() แตเ มื่อผใู ช กรอกขอมลู เขา มา 1 อกั ขระแลว โปรแกรมจะทํางานตอทันที โดยไม ตอ งกด enter และอักขระทีใ่ สเขา ไปจะไมแสดงข้ึนมาใหเหน็ บนหนาจอ variable = getch(); o variable : ตัวแปรชนิด char เก็บคา อักขระทีถ่ ูกปอ นเขา มา #include<stdio.h> #include<conio.h> ฟงกช น่ั getch(); char x; อยใู นไลบราลีน้ี void main() { key printf(“Enter yr grade : \\n”); A x = getch(); printf(“C Programming Grade : %c”,x); }
gets() ใชรบั ขอมูลเปนขอความเขา มาจากคียบอรด ซง่ึ เปน ฟงกชั่นสาํ หรบั ขอความโดยเฉพาะ gets(str); o str : ตวั แปรทใ่ี ชเก็บขอมูลชนิดขอ ความ (สายอกั ขระ = string) #include<stdio.h> char message[30]; void main() { printf(“Enter yr message : ”); key Kelly gets(message); printf(“%s”,message); }
ใหเ ขยี นโปรแกรมเพ่ือ 1. รับคา ขอ มลู เหลานมี้ าเก็บไว ◦ ช่ือและนามสกุลเก็บไวในตัวแปรชือ่ name[20], surname[40] ◦ วันเดอื นปเกิด dd/mm/yy นํามาแยกเก็บในตัวแปร day, month, year ◦ ที่อยเู ขา มาเกบ็ ในตวั แปร address[100] ◦ เกบ็ คา GPA. เปนทศนิยม 2 ตาํ แหนง 2. จากนน้ั แสดงขอมลู ทัง้ หมดออกทางหนา จอ Note : ควรใชรหสั ควบคุมรูปแบบสําหรบั เลขทศนยิ มและขอความ
Search
Read the Text Version
- 1 - 21
Pages: