Ãëàâíàÿ ñòðàíèöà Ñëó÷àéíàÿ ñòðàíèöà ÊÀÒÅÃÎÐÈÈ: ÀâòîìîáèëèÀñòðîíîìèÿÁèîëîãèÿÃåîãðàôèÿÄîì è ñàäÄðóãèå ÿçûêèÄðóãîåÈíôîðìàòèêàÈñòîðèÿÊóëüòóðàËèòåðàòóðàËîãèêàÌàòåìàòèêàÌåäèöèíàÌåòàëëóðãèÿÌåõàíèêàÎáðàçîâàíèåÎõðàíà òðóäàÏåäàãîãèêàÏîëèòèêàÏðàâîÏñèõîëîãèÿÐåëèãèÿÐèòîðèêàÑîöèîëîãèÿÑïîðòÑòðîèòåëüñòâîÒåõíîëîãèÿÒóðèçìÔèçèêàÔèëîñîôèÿÔèíàíñûÕèìèÿ×åð÷åíèåÝêîëîãèÿÝêîíîìèêàÝëåêòðîíèêà |
Chng 2
C¸ c lÖ nh vµo ra
Chng nµy gií i thiÖ u th viÖ n vµo/ra chuÈ n lµ mé t tË p c¸ c hµm ®î c thiÕ t kÕ ®Ó cung cÊ p hÖ thè ng vµo/ra chuÈ n cho c¸ c chng tr× nh C. Chó ng ta sÏ kh«ng m«t¶ toµn bé th viÖ n vµo ra ë ®©y mµ chØ quan t©m nhiÒ u hn ®Õ n viÖ c nª u ra nh÷ ng ®iÒ u c b¶n nhÊ t ®Ó viÕ t chng tr× nh C tng t¸ c ví i m«i trê ng vµ hÖ ®iÒ u hµnh.
2.1. Th©m nhË p vµo th viÖ n chuÈ n: Mç i tÖ p gè c cã tham trá tí i hµm th viÖ n chuÈ n ®Ò u ph¶i chø a dß ng:
#include < conio.h> cho c¸ c hµm getch(), putch(), clrscr(), gotoxy()... #include < stdio.h> cho c¸ c hµm kh¸ c nh gets(), fflus(), fwrite(), scanf()... ë gÇ n chç b¾ t ®Ç u chng tr× nh. TÖ p stdio.h ®Þ nh nghÜ a c¸ c macro vµ biÕ n cï ng c¸ c hµm dï ng trong th viÖ n vµo/ra. Dï ng dÊ u ngoÆ c < vµ > thay cho c¸ c dÊ u nh¸ y th«ng thê ng ®Ó chØ thÞ cho tr× nh biª n dÞ ch t× m kiÕ m tÖ p trong danh mô c chø a th«ng tin tiª u ®Ò chuÈ n. 2.2. C¸ c hµm vµo ra chuÈ n - getchar() vµ putchar() - getch() vµ putch(): 2.2.1. Hµm getchar (): C chÕ vµo ®n gi¶n nhÊ t lµ ®ä c tõ ng ký tù tõ thiÕ t bÞ vµo chuÈ n, nã i chung lµ bµn phÝ m vµ mµn h× nh cñ a ngê i sö dô ng, b»ng hµm getchar(). C¸ ch dï ng: Dï ng c©u lÖ nh sau: biÕ n = getchar(); C«ng dô ng: NhË n mé t ký tù vµo tõ bµn phÝ m vµ kh«ng ®a ra mµn h× nh. Hµm sÏ tr¶ vÒ ký tù nhË n ®î c vµ lu vµo biÕ n. VÝ dô: int c; c = getchar() 2.2.2. Hµm putchar (): §Ó ®a mé t ký tù ra thiÕ t bÞ ra chuÈ n, nã i chung lµ mµn h× nh, ta sö dô ng hµm putchar() C¸ ch dï ng: Dï ng c©u lÖ nh sau: putchar(ch);
C«ng dô ng: §a ký tù ch lª n mµn h× nh t¹ i vÞ trÝ hiÖ n t¹ i cñ a con trá. Ký tù sÏ ®î c hiÓ n thÞ ví i mµu tr¾ ng. VÝ dô: int c; c = getchar(); putchar(c); 2.2.3. Hµm getch(): Hµm nhË n mé t ký tù tõ bé ®Ö m bµn phÝ m, kh«ng cho hiÖ n lª n mµn h× nh. C¸ ch dï ng: Dï ng c©u lÖ nh sau: getch();
C«ng dô ng: NÕ u cã s½ n ký tù trong bé ®Ö m bµn phÝ m th× hµm sÏ nhË n mé t ký tù trong ®ã. NÕ u bé ®Ö m rç ng, m¸ y sÏ t¹ m dõ ng. Khi gâ mé t ký tù th× hµm nhË n ngay ký tù ®ã (kh«ng cÇ n bÊ m thª m phÝ m Enter nh trong c¸ c hµm nhË p kh¸ c). Ký tù võ a gâ kh«ng hiÖ n lª n mµn h× nh.
NÕ u dï ng: biÕ n=getch(); Th× biÕ n sÏ chø a ký tù ®ä c vµo. VÝ dô: c = getch();
2..2.4. Hµm putch(): C¸ ch dï ng: Dï ng c©u lÖ nh sau: putch(ch);
C«ng dô ng: §a ký tù ch lª n mµn h× nh t¹ i vÞ trÝ hiÖ n t¹ i cñ a con trá. Ký tù sÏ ®î c hiÓ n thÞ theo mµu x¸ c ®Þ nh trong hµm textcolor. Hµm cò ng tr¶ vÒ ký tù ®î c hiÓ n thÞ. 2.3. §a kÕ t qu¶ lª n mµn h× nh - hµm printf: C¸ ch dï ng: prinf(®iÒ u khiÓ n, ®è i sè 1, ®è i sè 2,...); Hµm printf chuyÓ n, t¹ o khu«n d¹ ng vµ in c¸ c ®è i cñ a nã ra thiÕ t bÞ ra chuÈ n dí i sù ®iÒ u khiÓ n cñ a x©u ®iÒ u khiÓ n. X©u ®iÒ u khiÓ n chø a hai kiÓ u ®è i tî ng: c¸ c ký tù th«ng thê ng, chó ng sÏ ®î c ®a ra trù c tiÕ p thiÕ t bÞ ra, vµ c¸ c ®Æ c t¶ chuyÓ n d¹ ng, mç i ®Æ c t¶ sÏ t¹ o ra viÖ c ®æ i d¹ ng vµ in ®è i tiÕ p sau cñ a printf. Chuç i ®iÒ u khiÓ n cã thÓ cã c¸ c ký tù ®iÒ u khiÓ n: \n sang dß ng mí i \f sang trang mí i \b lï i l¹ i mé t bí c \t dÊ u tab D¹ ng tæ ng qu¸ t cñ a ®Æ c t¶: %[-][fw][.pp]ký tù chuyÓ n d¹ ng Mç i ®Æ c t¶ chuyÓ n d¹ ng ®Ò u ®î c ®a vµo b»ng ký tù % vµ kÕ t thó c bë i mé t ký tù chuyÓ n d¹ ng. Gi÷ a % vµ ký tù chuyÓ n d¹ ng cã thÓ cã: DÊ u trõ: Khi kh«ng cã dÊ u trõ th× kÕ t qu¶ ra ®î c då n vÒ bª n ph¶i nÕ u ®é dµi thù c tÕ cñ a kÕ t qu¶ ra nhá hn ®é ré ng tè i thiÓ u fw dµnh cho nã. C¸ c vÞ trÝ d thõ a sÏ ®î c lÊ p ®Ç y b»ng c¸ c kho¶ng trè ng. Riª ng ®è i ví i c¸ c trê ng sè, nÕ u d·y sè fw b¾ t ®Ç u b»ng sè 0 th× c¸ c vÞ trÝ d thõ a bª n tr¸ i sÏ ®î c lÊ p ®Ç y b»ng c¸ c sè 0. Khi cã dÊ u trõ th× kÕ t qu¶ ®î c då n vÒ bª n tr¸ i vµ c¸ c vÞ trÝ d thõ a vÒ bª n ph¶i (nÕ u cã) lu«n ®î c lÊ p ®Ç y b»ng c¸ c kho¶ng trè ng. fw: Khi fw lí n hn ®é dµi thù c tÕ cñ a kÕ t qu¶ ra th× c¸ c vÞ trÝ d thõ a sÏ ®î c lÊ p ®Ç y bë i c¸ c kho¶ng trè ng hoÆ c sè 0 vµ né i dung cñ a kÕ t qu¶ ra sÏ ®î c ®È y vÒ bª n ph¶i hoÆ c bª n tr¸ i. Khi kh«ng cã fw hoÆ c fw nhá hn hay b»ng ®é dµi thù c tÕ cñ a kÕ t qu¶ ra th× ®é ré ng trª n thiÕ t bÞ ra dµnh cho kÕ t qu¶ sÏ b»ng chÝ nh ®é dµi cñ a nã. T¹ i vÞ trÝ cñ a fw ta cã thÓ ®Æ t dÊ u *, khi ®ã fw ®î c x¸ c ®Þ nh bë i gi¸ trÞ nguyª n cñ a ®è i tng ø ng. VÝ dô:
pp: Tham sè pp chØ ®î c sö dô ng khi ®è i tng ø ng lµ mé t x©u ký tù hoÆ c mé t gi¸ trÞ kiÓ u float hay double. Trong trê ng hî p ®è i tng ø ng cã gi¸ trÞ kiÓ u float hay double th× pp lµ ®é chÝ nh x¸ c cñ a trê ng ra. Nã i mé t c¸ ch cô thÓ hn gi¸ trÞ in ra sÏ cã pp ch÷ sè sau sè thË p ph©n. Khi v¾ ng mÆ t pp th× ®é chÝ nh x¸ c sÏ ®î c xem lµ 6. Khi ®è i lµ x©u ký tù: NÕ u pp nhá hn ®é dµi cñ a x©u th× chØ pp ký tù ®Ç u tiª n cñ a x©u ®î c in ra. NÕ u kh«ng cã pp hoÆ c nÕ u pp lí n hn hay b»ng ®é dµi cñ a x©u th× c¶ x©u ký tù sÏ ®î c in ra. VÝ dô:
C¸ c ký tù chuyÓ n d¹ ng vµ ý nghÜ a cñ a nã: Ký tù chuyÓ n d¹ ng lµ mé t hoÆ c mé t d·y ký hiÖ u x¸ c ®Þ nh quy t¾ c chuyÓ n d¹ ng vµ d¹ ng in ra cñ a ®è i tng ø ng. Nh vË y sÏ cã t× nh tr¹ ng cï ng mé t sè sÏ ®î c in ra theo c¸ c d¹ ng kh¸ c nhau. CÇ n ph¶i sö dô ng c¸ c ký tù chuyÓ n d¹ ng theo ®ó ng qui t¾ c ®Þ nh s½ n. B¶ng sau cho c¸ c th«ng tin vÒ c¸ c ký tù chuyÓ n d¹ ng.
Chó ý: Mä i d·y ký tù kh«ng b¾ t ®Ç u b»ng % hoÆ c kh«ng kÕ t thó c b»ng ký tù chuyÓ n d¹ ng ®Ò u ®î c xem lµ ký tù hiÓ n thÞ. §Ó hiÓ n thÞ c¸ c ký tù ®Æ c biÖ t:
C¸ c vÝ dô:
2.4. Vµo sè liÖ u tõ bµn phÝ m - hµm scanf: Hµm scanf lµ hµm ®ä c th«ng tin tõ thiÕ t bÞ vµo chuÈ n (bµn phÝ m), chuyÓ n dÞ ch chó ng (thµnh sè nguyª n, sè thù c, ký tù vv..) rå i lu tr÷ nã vµo bé nhí theo c¸ c ®Þ a chØ x¸ c ®Þ nh. C¸ ch dï ng: scanf(®iÒ u khiÓ n, ®è i 1, ®è i 2,...); X©u ®iÒ u khiÓ n chø a c¸ c ®Æ c t¶ chuyÓ n d¹ ng, mç i ®Æ c t¶ sÏ t¹ o ra viÖ c ®æ i d¹ ng biÕ n tiÕ p sau cñ a scanf. §Æ c t¶ cã thÓ viÕ t mé t c¸ ch tæ ng qu¸ t nh sau: %[*][d...d]ký tù chuyÓ n d¹ ng ViÖ c cã mÆ t cñ a dÊ u * nã i lª n r»ng trê ng vµo vÉ n ®î c dß ®ä c b× nh thê ng, nhng gi¸ trÞ cñ a nã bÞ bá qua (kh«ng ®î c lu vµo bé nhí). Nh vË y ®Æ c t¶ chø a dÊ u * sÏ kh«ng cã ®è i tng ø ng. d...d lµ mé t d·y sè x¸ c ®Þ nh chiÒ u dµi cù c ®¹ i cñ a trê ng vµo, ý nghÜ a cñ a nã ®î c gi¶i thÝ ch nh sau: NÕ u tham sè d...d v¾ ng mÆ t hoÆ c nÕ u gi¸ trÞ cñ a nã lí n hn hay b»ng ®é dµi cñ a trê ng vµo tng ø ng th× toµn bé trê ng vµo sÏ ®î c ®ä c, né i dung cñ a nã ®î c dÞ ch vµ ®î c g¸ n cho ®Þ a chØ tng ø ng (nÕ u kh«ng cã dÊ u *). NÕ u gi¸ trÞ cñ a d...d nhá hn ®é dµi cñ a trê ng vµo th× chØ phÇ n ®Ç u cñ a trê ng cã kÝ ch cì b»ng d...d ®î c ®ä c vµ g¸ n cho ®Þ a chØ cñ a biÕ n tng ø ng. PhÇ n cß n l¹ i cñ a trê ng sÏ ®î c xem xÐ t bë i c¸ c ®Æ c t¶ vµ ®è i tng ø ng tiÕ p theo. VÝ dô: int a; float x, y; char ch[6], ct[6] scanf(" %f%5f%3d%3s%s", & x& y& a& ch& ct0; Ví i dß ng vµo: 54.32e-1 25 12452348a KÕ t qu¶ lµ lÖ nh scanf sÏ g¸ n 5.432 cho x 25.0 cho y 124 cho a x©u " 523" vµ dÊ u kÕ t thó c \0 cho ch x©u " 48a" vµ dÊ u kÕ t thó c \0 cho ct
Ký tù chuyÓ n d¹ ng: Ký tù chuyÓ n d¹ ng x¸ c ®Þ nh c¸ ch thø c dß ®ä c c¸ c ký tù trª n dß ng vµo cò ng nh c¸ ch chuyÓ n dÞ ch th«ng tin ®ä c ®ù î c trí c khi g¸ n nã cho c¸ c ®Þ a chØ tng ø ng. C¸ ch dß ®ä c thø nhÊ t lµ ®ä c theo trê ng vµo, khi ®ã c¸ c kho¶ng tr¾ ng bÞ bá qua. C¸ ch nµy ¸ p dô ng cho hÇ u hÕ t c¸ c trê ng hî p. C¸ ch dß ®ä c thø hai lµ ®ä c theo ký tù, khi ®ã c¸ c kho¶ng tr¾ ng cò ng ®î c xem xÐ t b× nh ®¼ ng nh c¸ c ký tù kh¸ c. Phng ph¸ p nµy chØ x¶y ra khi ta sö dô ng mé t trong ba ký tù chuyÓ n d¹ ng sau: C, [ d·y ký tù ], [^ d·y ký tù ]
C¸ c ký tù chuyÓ n d¹ ng vµ ý nghÜ a cñ a nã:
[ D·y ký tù ], [ ^D·y ký tù ] C¸ c ký tù trª n dß ng vµo sÏ lÇ n lî t ®î c ®ä c cho ®Õ n khi nµo gÆ p mé t ký tù kh«ng thué c tË p c¸ c ký tù ®Æ t trong[]. §è i tng ø ng lµ con trá kiÓ u char. Trê ng vµo lµ d·y ký tù bÊ t kú (kho¶ng tr¾ ng ®î c xem nh mé t ký tù).
VÝ dô: int a, b; char ch[10], ck[10]; scanf(" %d%[0123456789]%[^0123456789]%3d", & a, ch, ck, & b); Ví i dß ng vµo: 35 13145 xyz 584235 SÏ g¸ n: 35 cho a x©u " 13145" cho ch x©u " xyz' cho ck 584 cho b Chó ý: XÐ t ®o¹ n chng tr× nh dï ng ®Ó nhË p (tõ bµn phÝ m) ba gi¸ trÞ nguyª n rå i g¸ n cho ba biÕ n a, b, c nh sau: int a, b, c; scanf(" %d%d%d”, & a, & b, & c); §Ó vµo sè liÖ u ta cã thÓ thao t¸ c theo nhiÒ u c¸ ch kh¸ c nhau: C¸ ch 1: §a ba sè vµo cï ng mé t dß ng, c¸ c sè ph©n c¸ ch nhau b»ng dÊ u c¸ ch hoÆ c dÊ u tab. C¸ ch 2: §a ba sè vµo ba dß ng kh¸ c nhau. C¸ ch 3: Hai sè ®Ç u cï ng mé t dß ng (c¸ ch nahu bë i dÊ u c¸ ch hoÆ tab), sè thø ba trª n dß ng tiÕ p theo. C¸ ch 4: Sè thø nhÊ t trª n mé t dß ng, hai sè sau cï ng mé t dß ng tiÕ p theo (c¸ ch nahu bë i dÊ u c¸ ch hoÆ tab), sè thø ba trª n dß ng tiÕ p theo. Khi vµo sai sÏ b¸ o lç i vµ nh¶y vÒ chng tr× nh chø a lê i gä i nã.
2.5. §a kÕ t qu¶ ra m¸ y in: §Ó ®a kÕ t qu¶ ra m¸ y in ta dï ng hµm chuÈ n fprintf cã d¹ ng sau: fprintf(stdprn, ®iÒ u khiÓ n, biÕ n 1, biÕ n 2,...); Tham sè stdprn x¸ c ®Þ nh thiÕ t bÞ ®a ra lµ m¸ y in. §iÒ u khiÓ n cã d¹ ng ®Æ c t¶ nh lÖ nh printf. Dï ng giè ng nh lÖ nh printf, chØ kh¸ c lµ in ra m¸ y in. VÝ dô: §o¹ n chng tr× nh in ma trË n A, cì 8x6. Mç i hµng cñ a ma trË n ®î c in trª n mé t dß ng: float a[8][6]; int i, j; fprintf(stdprn, " \n%20c MA TRAN A\n\n\n", ' '); for (i=0; i< 8; ++i) { for (j=0; j< 6; ++j) fprintf(stdprn, " %10.2f", a[i][j]); fprintf(stdprn, " \n"); }
|