23
ใใใใใใใใใใใใ 3 ใใใใใใ ใใใใใใใใใใใใ ใใใใใใใใใใใใ (ใใใใใใใใใใใใใใใใใใ3) ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใ ใ 40214 ใใใใใใใใใใใ 4 ใใใใใใใใใ (Output) กกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกก ก กกกกกกกกกกกกกกกกกกกกกกกกก library กกกกกกกกกกกกกก กกกกกกกกกกกกกก กกกก printf() ,puts() , putchar() กกกกกกกก กกกกกกกกกกกกกก header file กกกก stdio.h ใใใใใใใใ printf() กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกก กกกกกกกกกกก printf() กกกกกกกก กกกกกก printf(control string,argument list); กกก control string กกกกกกกกกก กกกกกกก กกกก กกกกกกกกกกกก(format code) กกกกกกกกกก(control code) กกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกก กกกกกก (") กกกก argument list กกกกกกกกกกกกกกกกกกก กกก กกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกก กกกกกก กกกกกกกก กกกกกกกกกก กกกกกกก 1 กกก กกกกกกกกกกกกกก กกกกกกกกกกกกกกก กกกกกก(,) กกกกกกกกกกกกกกกก(format code) กกกกกกกกกกกกกก กกกกกกกกกกกกกกก กกกกกกกก กกกกกกกกกกกกกกกกกกกกก กกกก กกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกก กกกกกก กกกกกกก กกก กกกกกกกกกกกกกกกกกกกกกกกกกกก printf() กกกกกกกกกกกกกกกกกกกกกก % กกกกกกกกกกกกกกกกกกกกกกกก กกกกกก (conversion code) กกกกกกกกกกกกกกกกกกกก

ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ใบความรท 3เรอง การรบขอมล และการแสดงผล

(ประกอบแผนการสอนท3)รายวชา การโปรแกรมและการประยกต ง 40214

ชวงชนท 4

การแสดงผล (Output) การแสดงผลลพธ ปกตกคอแสดงออกทางจอภาพ ในภาษาซใชในรปของฟงกชน เชนเดยวกบงานอน ๆ โดยฟงกชนมาตรฐานทมใน library ฟงกชนทใชแสดงผลทางจอภาพ เชน printf() ,puts() , putchar() ฟงกชน เหลานอยใน header file ชอ stdio.h

ฟงกชน printf() เปนฟงกชนทใชแสดงผลลพธออกทางจอภาพ การแสดงผลทางจอภาพ

ดวยฟงกชนนสามารถกำาหนดรปแบบและรหสควบคมได โดยฟงกชน printf() มรปแบบ ดงน

printf(control string,argument list);โดย control string ประกอบดวย ขอความ รหสกำาหนดรป

แบบ(format code) รหสควบคม(control code) ทงหมดน ตองลอมดวยเครองหมาย คำาพด (") สวน argument list เปนรายการของตวแปร คาคงท หรอนพจนทจะแสดงออกทางจอภาพ หากม ตวแปร คาคงท หรอนพจน มากกวา 1 คา แตละคาจะคนดวยเครองหมาย คอมมา(,)

รหสกำาหนดรปแบบ(format code) เปนรหสกำาหนดรปแบบของตวแปร คาคงท หรอนพจนทจะแสดงผล เชน แสดงคาเลขจำานวนเตม หรอจำานวนจรง อกขระ ขอความ ฯลฯ รหสรปแบบทใชกบฟงกชน printf() จะเรมดวยเครองหมาย % ตามดวยรหสกำาหนดชนดการแสดงผล (conversion code) ดงตารางแสดงตอไปน

Page 2: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตารางแสดงรหสกำาหนดรปแบบ และความหมายของรหสรหสรปแบบ

ความหมายหรอหนาทของรหสรปแบบ

%c ใชกำาหนดตำาแหนงทจะแสดง อกขระ 1 ตว (single character)%d , %i

ใชกำาหนดตำาแหนงแสดงเลขจำานวนเตม(integer หรอ int ) 1 จำานวนในรปเลขฐานสบ

%e , %E

ใชแสดงตวเลขทเปนจดทศนยม (floating point ,float)ในรป e เชน 2.15e+2 คอแทนคา 215

%f ใชกบขอมลเปน float และ double %g , %G

ใชกบขอมล float

%h ใชกบ short integer%o(ตว

โอ)ใชแสดง integer ในรปเลขฐานแปด

%x , %X

ใชแสดง integer ในรปเลขฐานสบหก (%x แสงเปนตวพมพเลก %X แสดงเปนตวพมพใหญ)

%s ใชแสดงขอความ%u ใชแสดงตวเลขจำานวนเตม(integer หรอ int ) ทไมมเครองหมาย

ในรปแบบเลขฐานสบ%% ใชแสดงเครองหมาย %%p ใชแสดง address ของตวแปรพอยนเตอร

รหสรปแบบการแสดงผลจอภาพน อาจแสดงในรปแบบทวไป ไดดงน% flag maximum_width precision size

conversion_codeโดย

flag มคาเปนไปได 2 คา คอ - (เครองหมายลบ) หมายถงใหจดชดซาย + (เครองหมายบวก) หมายถงเมอเปนจำานวนบวกใหแสดงเครองหมาย + ไวหนาตวเลขดวย mximum_width จำานวนสดมภหรอคอลมน ทจองไวแสดงขอมล(ถาขอมลมจำานวนสดมภมากกวาการกำาหนดคานปกตจะไมมผล) precision คอจำานวนตวเลขหลงจดทศนยม(ตองใช . ดวย)

Page 3: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

size คอ การกำาหนดใหสอดคลองกบตวแปร เชน ใช l (ตวแอล) เชน ld เปนตวเลขฐาน 10 ของ long lf แทน เลขจำานวนจรงแบบ double conversion code คอ รหสกำาหนดชนดการแสดงผลดงในตารางทผานมาเชน %-10.2lf หมายความแสดงขอมลแบบจำานวนจรงชนด double โดยมความกวาง 10 สดมภโดยมทศนยม 2 ตำาแหนง

Page 4: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท 3.1 โปรแกรม example3_1.c แสดงการใชรหสรปแบบเพอแสดงผลทางจอภาพดวยคำาสง printf() ของตวเลขตาง ๆ/* example3_1.c */#include <stdio.h>int x1 = 25 , x2 = -789,x3 = 159;long m =23456789;double y1 = 256.789 , y2 = 0.0025 , y3 = 2.5600E-4;main(){ printf("\n\t%o\t%x\t%X",x1,x3,x3); /* แสดง ตวเลขในรปเลขฐานแปด ฐานสบหก */ printf("\n\t%d\t%d",x1,x2); /* แสดงจำานวนเตมในรปเลขฐานสบ */ printf("\n\t%12d\t%12d",x1,x2); /* กำาหนดจำานวนสดมภเปน 12 สดมภทแสดงตวเลข */ printf("\n\t%-12d\t%-12d",x1,x2); /* กำาหนดใหพมพชดซาย */ printf("\n\t%+12d\t%+12d",x1,x2); /* จำานวนบวกใหใสเครองหมาย + ดวย */ printf("\n\t%+-12d\t%+-12d",x1,x2); /* ใหพมพชดซาย และจำานวนบวกใหใสเครองหมาย + ดวย */ printf("\n\t%+-12d\t%+-12ld",m,m); /* พมพจำานวน long ในรปเลขฐานสบ */ printf("\n\t%12.2e\t%12.3E",y1,y2); /* พมพตวเลขในรปทางวทยาศาสตรโดยกำาหนดจำานวนตำาแหนงทศนยม */ printf("\n\t%-12.2E\t%+12.3E",y1,y2); /* จำานวนแรกใหพมพชดซาย จำานวนหลงใหใสเครองหมาย+หนาตวเลข ในรปแบบตวเลขทางวทยาศาสตร */ printf("\n\t%-12.2f\t%+12.3f",y1,y2); /* ใหพมพในรปแบบทศนยม โดยกำาหนดจำานวนสดมภ และจำานวนตำาแหนงทศนยม จำานวนแรกใหชดซาย จำานวนหลงใสเครองหมาย + */ printf("\n\t%-12.5f\t%+12.4f",y3,y3); */ พมพตวเลขทางวทยาศาสตรในรปแบบ f โดยกำาหนดจำานวนสดมภ และจำานวนตำาแหนงทศนยม */

Page 5: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

getch();}ผลการทำางานของโปรแกรม example3_1.c เปน ดงรป

ตวอยางท 3.2 โปรแกรม example3_2.c แสดงการใชคำาสง printf() กบการแสดงผลตวแปรอกขระ ทางจอภาพ/* example3_2.c */#include <stdio.h>main(){ char one_c = 'A'; /* ประกาศตวแปร char เกบตวอกขระ 1 ตวใชเครองหมาย ‘ ลอมตวอกษรทกำาหนดคา */ char text1[] = "Computer Bodindecha School"; /* ประกาศตวแปร char เกบขอความ ใชเครองหมาย “ ลอมขอความทกำาหนดคาใหตวแปร */ char text2[] = "Student"; printf("\n\t%c\t%s",one_c,text1); printf("\n\t%c",text1); /* คำาสงนไดผลลพธไมถกตอง สวน %s ใชกบตวแปรทเกบตวอกษรตวเดยวไมไดจะ error ดงนนจงตองใหถกตอง คอ %s กบขอความ สวน %c กบตวแปรทเกบตวอกษร 1 ตว */ printf("\n\t%s\t%s",text2,text1); /* แสดง ขอความใน text2 และ text1 */ printf("\n\t%3s\t%10s",text2,text1); /* กำาหนดจำานวนสดมภทแสดงแตละขอความ แตนอยกวาความยาวของแตละขอความ จะไมมผล */ printf("\n\t%15s\t%s",text2,text1); /* กำาหนดสดมภทมากกวาความยาวของขอความแรก ขอความจะชดขวา */

Page 6: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

printf("\n\t%15s\t%35s",text2,text1); /* กำาหนดสดมภทมากกวาความยาวของทงสองขอความ ขอความจะชดขวา */ printf("\n\t%-15s\t%35s",text2,text1); /* กำาหนดจำานวนสดมภทแสดงขอความแรกยาวกวาขอความและกำาหนดใหพมพชดซาย สวนขอความหลงจำานวนสดมภมากกวาความยาวของขอความ ขอความชดขวาเพราะไมไดสงใหชดซาย */ getch();}ผลการทำางานของโปรแกรม example3_2.c เปน ดงรป

รหสควบคม(control code) เปนตวกำาหนดวาเมอแสดงผลแลวลกษณะของการแสดงผลครงตอไปจะเปลยนเปนอยางไร หรอใชแสดงผลอกขระหรอสญลกษณพเศษบางตว รหสควบคมทใชกบ printf() บางแหงเรยกวา ลำาดบหลก (escape sequence) โดยเรยก \ วา อกขระหลก (escape character) เพราะทำาใหความหมายของตวอกษรทตามมาเปลยนไปจากปกต ดงตารางตอไปน

ตารางแสดงรหสควบคมและความหมายรหสควบคม ความหมาย

\a สงเสยงบพ\b ถอยหลงไปทอยดานซาย 1 ตำาแหนง (backspace)\t เลอนตำาแหนงในการพมพครงตอไป 1 แทบ(แนวราบ

horizontal)\n ขนบรรทดใหม\r เลอนไปตนบรรทด\" แสดงเครองหมาย "

\o (เลข 0) แสดง NULL character

Page 7: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

\\ แสดงเครองหมาย \

Page 8: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท3.3 โปรแกรม example3_3.c แสดงการใช control code ในการทำางานของ printf()/* example3_3.c */#include <stdio.h>main(){ printf("\n\t\tUsing of control code"); printf("\n\tBodindecha\tSchool"); printf("\n\tBodindecha"); printf("\tSchool"); printf("\n\tA\n\tB\n\tC"); printf("\n\tComputer\b\b\b\b\b511"); printf("\n\tGood morning\rHi!"); getch();}ผลการทำางาน ของ example3_3.c เปนดงรป

ฟงกชน putchar()เปนฟงกชนทใชแสดงอกขระครงละ 1 ตว ทางจอภาพ ใชแสดงขอความ

ไมได รปแบบของฟงกชน คอ putchar(character); ฟงกชน puts() ใชแสดงขอความ (ไมใชอกขระ) ออกทางจอภาพ แลวเลอนเคอรเซอรไปตนบรรทดตอไป รปแบบของฟงกชน คอ

puts(string);

Page 9: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท 3.4 โปรแกรม example3_4.c แสดงตวอยางการใชคำาสง putchar() และ puts() /* example3_4.c */ #include <stdio.h>char ch1 = 'B';char text1[] ="Computer";

main(){ putchar('\n'); /* สงใหขนบรรทดใหม */ putchar('\t'); /* ใหเลอนไปทางขวา 1 tab */ putchar('a'); /* สงพมพอกขระ 1 ตว คอ a ตอง ใช ‘ ลอม เพราะเปน character ถาลอมดวย “ จะเปนขอความ ใช putchar() ไมได */ putchar('\n'); /* ใหขนบรรทดใหม เพราะ putchar() คำาสงบนไมไดขนบรรทดใหมให */ putchar('\t'); putchar(ch1); /* แสดง character ทเกบไวในตวแปร */ putchar('\n'); putchar('\t'); putchar(text1[0]); /* แสดงตวอกขรตวท1 ในตวแปร text1 */ putchar('\t'); putchar(text1[2]); /* แสดงตวอกขรตวท3 ในตวแปร text1 */ puts("\n"); /* พมพบรรทดวาง 1 บรรทด */ puts("\tThailand"); /* เลอนไป 1 tab แลวจงพมพ ขอความ */ puts("\n\tWangtonglang"); /* พมพบรรทดวาง 1 บรรทด แลวเลอนไป 1 tab แลวจงพมพ ขอความ */ puts("Bangkok\n"); /* พมพ ขอความแลวจงพมพบรรทดวาง 1 บรรทด */ puts(text1); /* พมพขอความในตวแปร */ puts("k"); /* แสดงขอความทมตวอกขระเพยง 1 ตวออกทางจอภาพ ใช ‘k’ ไมได เพราะเปนตวอกขระ */ puts("\tA"); getch();

Page 10: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

}ผลการทำางานของโปรแกรม /* example3_4.c */ เปน ดงรป

ฟงกชนรบขอมล (Input function)

ฟงกชน getchar() เปนฟงกชนทใชรบขอมลเปนตวอกขระจำานวน 1 ตวจากแปนพมพและอกขระนนจะปรากฏบนจอภาพ ดวยและตองเคาะแปน enter เพอแสดงวาปอนขอมลแลว การใชงานฟงกชนนปกตใชการกำาหนดตวแปรมารบคา ตวแปรทใช เปน int หรอ char เมอนำาไปแสดงผล ถาแสดงเปนเลขฐานสบ จะไดคารหส ASCII ของตวอกขระทปอน ถาแสดงเปนตวอกขระ จะไดตวอกขระตรงตามทมการเคาะ การใชฟงกชนนจะมปญหาเมอมการใชฟงกชนนมากกวา 1 ครง ตวอยางโปรแกรมการใชงานฟงกชน getchar()

โปรแกรมและผลทได โปรแกรมและผลทได#include <stdio.h>int ch1; /* ตวแปรทรบคาเปน int */main(){ ch1 = getchar(); printf("%d\n",ch1); printf("%c",ch1); getch();}ผลการทำางานของโปรแกรมจะเปน(ในกรณปอน A)A65A(บรรทดนมเคอรเซอรกระพรบรบการเคาะแปน เมอเคาะแปน โปรแกรมจะ

#include <stdio.h>char ch2; /* ตวแปรทรบคาเปน char */main(){ ch2 = getchar(); printf("%d\n",ch2); printf("%c",ch2); getch();}ผลการทำางานของโปรแกรมจะเปน(ในกรณปอน A)A65A(บรรทดนมเคอรเซอรกระพรบรบการเคาะแปน เมอเคาะแปน โปรแกรมจะ

Page 11: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

เลกงาน) เลกงาน)

Page 12: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ฟงกชน getch()ใชรบตวอกขระ 1 ตวจากแปนพมพ แตขณะรบไมแสดงทางจอภาพและ

ไมตองเคาะแปน enter เคอรเซอรอยทตำาแหนงเดม การใชงานฟงกชนนปกตใชการกำาหนดตวแปรมารบคา ตวแปรทใช เปน int หรอ char เมอนำาไปแสดงผล ถาแสดงเปนเลขฐานสบ จะไดคารหส ASCII ของตวอกขระทปอน ถาแสดงเปนตวอกขระ จะไดตวอกขระตรงตามทมการเคาะ ตวอยางการใชงานฟงกชน getch() เชน#include <stdio.h>char ch2;int ch1;main(){ ch2 = getch(); printf("\n%d\n",ch2); printf("%c\n",ch2); ch1 = getch(); printf("\n%d\n",ch1); printf("%c\n",ch1); getch();}เมอโปรแกรมทำางานจะไดผลลพธ ดงน(บรรทดนรบการเคาะแปน สมมตวาปอน A)65A(บรรทดนรบการเคาะแปน สมมตวาปอน B)66B(บรรทดนมเคอรเซอรกระพรบรบการเคาะแปน เมอเคาะแปน โปรแกรมจะเลกงาน)

ฟงกชน getche() รบตวอกขระจากแปนพมพ 1 ตว โดยแสดงออกทางจอภาพดวยและไม

ตองเคาะแปน enter ลกษณะการทำางานเปนไปในลกษณะเดยวกบ

Page 13: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

getche() ตางกนทแสดงตวอกขระทเคาะออกทางจอภาพดวยเมอเคาะ และเคอรเซอรเลอนไป 1 ตำาแหนงเทานน

Page 14: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ฟงกชน gets() ใชรบขอความจากแปนพมพ มาเกบไวในชอตวแปรทกำาหนด โดยเคาะ

แปน enter แสดงการจบการปอนขอมล มรปแบบ คอ gets(string_var);

โดย string_var คอ ชอตวแปรทใชเกบขอมลทรบมาจากการปอนทาง

แปนพมพ เปนตวแปรประเภทขอความ และสามารถแยกเปนตวอกขระได และตองเคาะแปน enter บอกใหรวาจบการปอนขอความ

ตวอยางท3.5 โปรแกรม example3_5.c แสดงตวอยางการใชงานฟงกชน gets()/* example3_5.c */#include <stdio.h>char ge1[20]; /* ตวแปรขอความทรบได 19 ตวอกษร ตวท20 คอรหสการจบ */char ge2[15]; /* ตวแปรขอความทรบได 14 ตวอกษร ตวท15 คอรหสการจบ */main(){ printf("\n\tPlease enter 1st string:"); gets(ge1); /* รบการปอนขอความจากแปนพมพไปเกบไวในตวแปร ชอ ge1 */ printf("\n\t1st string is: \t %s %c \n",ge1,ge1[5]); /* แสดงขอความ และตวอกขระตวท 6 ในขอความ */ printf("\n\tPlease enter 2nd string :"); gets(ge2); /* รบการปอนขอความจากแปนพมพไปเกบไวในตวแปร ชอ ge2 */ printf("\n\t2nd string is %s selected character is %c \n",ge2,ge2[7]); /* แสดงขอความ และตวอกขระตวท8 ในขอความ */ getch();}ผลการทำางานของโปรแกรมเปนดงรป

Page 15: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท
Page 16: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ฟงกชน scanf()เปนฟงกชนทใชรบขอมลประเภทตาง ๆ จากแปนพมพไดกวางขวางกวา

ฟงกชนอน ๆ ทผานมา ขอมลทรบ เชน จำา นวนเตม จำานวนจรง ขอความ อกขระ รปแบบของฟงกชน คอ

scanf(control string ,variable list);control string เปนรหสสำาหรบรปแบบของขอมลทจะรบเขา โดยรหส

นทงหมดจะตองอยภายในเครองหมายพด รหสแตละตวจะแทนขอมลแตละคา โดยสามารถมรหสของขอมล หลายคาไดในครงเดยวกนโดยไมจำาเปนตองมเครองหมายอนใดมาคน

variable list คอรายการของชอตวแปรทจะมารบคาของขอมลทปอนจากแปนพมพ โดยตวแปรตองประเภทเดยวกบขอมลทตวแปรนนรบ และจำานวนตวแปรจะตองมจำานวนเทากบจำานวนรหสรปแบบของขอมล โดยชอตวแปรนนอยหลงจากเครองหมายคำาพดทลอมรหสขอมลโดยมการคนดวยเครองหมายคอมมา(,)และหากมตวแปรหลายตวแตละตวจะคนดวยเครองหมายคอมมาเชนกน และหนาชอตวแปรแตละตวจะตองนำาดวยเครองหมาย & ยกเวนตวแปรของขอมลประเภทขอความ(string) เชน คำาสง

scanf("%d %f %s",&i1,&f1,word);เปนคำาสงใหรบขอมลจากแปนพมพ 3 คา เปนขอมลประเภท จำานวนเตมแบบเลขฐานสบ ตามดวยขอมลเลขทศนยม และขอมลประเภทขอความ โดยมตวแปรชอ i1 , f1 และ word ซงเปนแปรตวประเภท จำานวนเตม จำานวนทศนยม และตวแปรขอความตามลำาดบ มารบคาของขอมลเหลานน คำาสงนจะรบขอมลเมอเคาะแปน enter และจะเลอนไปตนบรรทดตอไป รหสรปแบบขอมลทใชในฟงกชน scanf() เปนดงรายการ

รหสรปแบบ ความหมายในการใช%c สำาหรบขอมลประเภทตวอกขระ ( character)%d สำาหรบขอมลจำานวนเตมในรปเลขฐานสบ%e สำาหรบขอมลประเภททศนยม( floating point) ทเขยนในรป

เลขยกกำาลง%f %lf สำาหรบจำานวนประเภท float และ double

%g ใชกบขอมลประเภท float

Page 17: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

%h สำาหรบขอมลประเภท short integer%l สำาหรบขอมลประเภท integer ทงเลขฐาน 8 ฐาน 10 และ

ฐาน 16%o สำาหรบขอมลประเภท integer เลขฐาน 8 เทานน%u สำาหรบขอมลประเภท unsigned integer เลขฐาน 10

เทานน%x สำาหรบขอมลประเภท integer เลขฐาน 16 เทานน%s สำาหรบขอมลประเภทขอความ (string)

แมวาฟงกชน scanf() สามารถใชรบขอมลไดหลายคาหลายชนดในคำาสงเดยวกน แตอาจมปญหาในการรบขอมลประเภท ตวอกษร (char ) และ ขอความ (string) จงควรใชคำาสง scanf() 1 คำาสงเพอรบคาเพยงคาเดยว และการรบขอมลประเภทขอความทมชองวาง ควรใชฟงกชน gets() มากกวา

ตวอยางท3.6 โปรแกรม แสดงการใชงาน ฟงกชน scanf()/* example3_6.c */#include <stdio.h>main(){ float b; char y, d[20] ; int i; printf("\n\tEnter a character.(store in y variable) :"); scanf("%c",&y); printf("\tEnter a floating point number.(b) :"); scanf("%f",&b); printf("\tEnter a string.(d) :"); scanf("%s",d); printf("\tEnter a integer.(i) :"); scanf("%d" , &i); printf("\t y = %c \t b = %2.2f \t d = %s \n\t d[5] = %c \t i = %d \n\t",y,b,d,d[5],i ); getch();}เมอโปรแกรมทำางานจะไดผล ดงรป

Page 18: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท
Page 19: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท3.7 โปรแกรม แสดงการใช scanf() รบตวเลข 2 จำานวน ในคำาสงเดยว/* example3_7.c */#include <stdio.h>main(){ int num1,num2; printf("\n\tPlease enter seven digit number : "); scanf("%3d%d",&num1,&num2); /* ใหจำานวนแรก มตวเลข 3 หลก คอ %3d สวนจำานวนหลงไมระบจำานวนหลก */ printf("\n\tYour numbers are\n\tnum1 = %d \n\tnum2 = %d",num1,num2); getch();}เมอโปรแกรมทำางาน จะไดผลลกษณะ ดงรป

ตวอยางท3.8 โปรแกรม แสดงการใช scanf() รบอกขระ(character)และสายอกขระ(string)ในคำาสงเดยวกน/* example3_8.c */#include <stdio.h>main(){ char ch1,st[20]; printf("\n\tPlease input your text : "); scanf("%c%s",&ch1,st); printf("\n\tYour character is %c",ch1); printf("\n\tYour string are %s",st); getch();}เมอโปรแกรมทำางาน จะไดผลลกษณะ ดงรป

Page 20: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท3.9 โปรแกรม example3_9.c แสดงความแตกตางกนในรบขอความ ระหวาง ฟงกชน scanf() กบ gets() /* example3_9.c */#include <stdio.h>main(){ char ch1[50],ch2[50]; printf("\n\tPlease input first string: "); gets(ch1); printf("\n\tPlease input second string: "); scanf("%s",ch2); printf("\n\tYour first strings (use gets) : %s",ch1); printf("\n\tYour second strings (use scanf): %s",ch2); getch();}เมอ โปรแกรมทำางาน และปอนขอความ จะได ลกษณะ ดงรป

Page 21: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

ตวอยางท3.10 ใหนกเรยนเขยนโปรแกรม ทเมอโปรแกรมทำางาน แลวแจงใหผใชทราบวาใชหาปรมาตรของปรซมฐานสเหลยม แลวใหผใชโปรแกรม ปอนความกวาง ความยาวของฐาน ความสงของทรงกระบอก เมอผใชปอนเสรจกรายงาน คาตาง ๆ ของทรงกระบอก ใหชอโปรแกรมนวา example3_10.cวธการโปรแกรมทจะเขยนนควร มขนตอนการทำางาน คอDisplay program propertyInput base width : bwideInput base length : blengInput height : highCompute volume : cvol cvol = bwide * bleng * highreport data base width : bwide base length : bleng height : high volume : cvolนำาขนตอน ดงกลาวมาเขยนโปรแกรม จะไดโปรแกรมทำานองโปรแกรม /* example3_10.c */#include <stdio.h>main(){ float bwide, bleng , high,cvol; printf("\n\tThis program use to compute the volume of prism.\n"); printf("\n\tPlease input the base width : "); scanf("%f",&bwide); printf("\n\tPlease input the base length : "); scanf("%f",&bleng); printf("\n\tPlease input the height of prism. : "); scanf("%f",&high); cvol = bwide * bleng * high; printf("\n\tProperties of the prism."); printf("\n\tbase width :\t%10.2f unit",bwide); printf("\n\tbase length :\t%10.2f unit",bleng); printf("\n\t prism height :\t%10.2f unit",high); printf("\n\t prism volume :\t%10.2f unit",cvol); getch(); }

Page 22: ใบงานที่ - pm.ac.th · Web viewเป นคำส งให ร บข อม ลจากแป นพ มพ 3 ค า เป นข อม ลประเภท

เมอโปรแกรมทำางานจะไดผลดงรป