You are on page 1of 11

Chng 2: Cc lnh vo ra

Chng 2 CC LNH VO RA
Chng ny gii thiu th vin vo/ra chun l mt tp cc hm c thit k cung cp h thng vo/ra chun cho cc chng trnh C. Chng ta s khng m t ton b th vin vo ra y m ch quan tm nhiu hn n vic nu ra nhng iu c bn nht vit chng trnh C tng tc vi mi trng v h iu hnh. 2.1. Thm nhp vo th vin chun : Mi tp gc c tham tr ti hm th vin chun u phi cha dng :

#include <conio.h> cho cc hm getch(), putch(), clrscr(), gotoxy() ... #include <stdio.h> cho cc hm khc nh gets(), fflus(), fwrite(), scanf()... gn ch bt u chng trnh. Tp stdio.h nh ngha cc macro v bin cng cc hm dng trong th vin vo/ra. Dng du ngoc < v > thay cho cc du nhy thn g thng ch th cho trnh bin dch tm kim tp trong danh mc cha thng tin tiu chun. 2.2. Cc hm vo ra chun - getchar() v putchar() - getch() v putch() : 2.2.1. Hm getchar () : C ch vo n gin nht l c tng k t t thit b vo chun, ni chung l bn phm v mn hnh ca ngi s dng, bng hm getchar().

Cch dng : Dng cu lnh sau : bin = getchar(); Cng dng : Nhn mt k t vo t bn phm v khng a ra mn hnh. Hm s tr v k t nhn c v lu vo bin.
17

Chng 2: Cc lnh vo ra

V d : int c; c = getchar()

2.2.2. Hm putchar () : a mt k t ra thit b ra chun, ni chung l mn hnh, ta s dng hm putchar()

Cch dng : Dng cu lnh sau : putchar(ch); Cng dng : a k t ch ln mn hnh ti v tr hin ti ca con tr. K t s c hin th vi mu trng. V d : int c; c = getchar(); putchar(c);

2.2.3. Hm getch() : Hm nhn mt k t t b m bn phm, khng cho hin ln mn hnh.

Cch dng : Dng cu lnh sau : getch(); Cng dng : Nu c sn k t trong b m bn phm th hm s nhn mt k t trong .

18

Chng 2: Cc lnh vo ra

Nu b m rng, my s tm dng. Khi g mt k t th hm nhn ngay k t ( khng cn bm thm phm Enter nh trong cc hm nhp khc ). K t va g khng hin ln mn hnh. Nu dng : bin=getch(); Th bin s cha k t c vo. V d : c = getch();

2..2.4. Hm putch() : Cch dng : Dng cu lnh sau : putch(ch); Cng dng : a k t ch ln mn hnh ti v tr hin ti ca con tr. K t s c hin th theo mu xc nh trong hm textcolor. Hm cng tr v k t c hin th. 2.3. a kt qu ln mn hnh - hm printf : Cch dng : prinf(iu khin, i s 1, i s 2, ...); Hm printf chuyn, to khun dng v in cc i ca n ra thit b ra chun di s iu khin ca xu iu khin. Xu iu khin cha hai kiu i tng : cc k t thng thng, chng s c a ra trc tip thit b ra, v cc c t chuyn dng, mi c t s to ra vic i dng v in i tip sau ca printf. Chui iu khin c th c cc k t iu khin : \n sang dng mi

19

Chng 2: Cc lnh vo ra

\f \b \t

sang trang mi li li mt bc du tab

Dng tng qut ca c t : %[-][fw][.pp]k t chuyn dng Mi c t chuyn dng u c a vo bng k t % v kt thc bi mt k t chuyn dng. Gia % v k t chuyn dng c th c : Du tr : Khi khng c du tr th kt qu ra c dn v bn phi nu di thc t ca kt qu ra nh hn rng ti thiu fw dnh cho n. Cc v tr d tha s c lp y bng cc khong trng. Ring i vi cc trng s, nu dy s fw bt u bng s 0 th cc v tr d tha bn tri s c lp y bng cc s 0. Khi c du tr th kt qu c dn v bn tri v cc v tr d tha v bn phi ( nu c ) lun c lp y bng cc khong trng. fw : Khi fw ln hn di thc t ca kt qu ra th cc v tr d tha s c lp y bi cc khong trng hoc s 0 v ni dung ca kt qu ra s c y v bn phi hoc bn tri. Khi khng c fw hoc fw nh hn hay bng di thc t ca kt qu ra th rng trn thit b ra dnh cho kt qu s bng chnh di ca n. Ti v tr ca fw ta c th t du *, khi fw c xc nh bi gi tr nguyn ca i tng ng. V d : Kt qu ra -2503 -2503 -2503 -2503 fw 8 08 8 08 Du c c khng khng Kt qu a ra -2503 -2503 -2503 000-2503

20

Chng 2: Cc lnh vo ra

"abcdef" "abcdef" "abcdef"

8 08 08

khng c khng

abcdef abcdef abcdef

pp : Tham s pp ch c s dng khi i tng ng l mt xu k t hoc mt gi tr kiu float hay double. Trong trng hp i tng ng c gi tr kiu float hay double th pp l s chnh xc ca trng ra. Ni mt cch c th hn gi tr in ra s c pp ch sau s thp phn. Khi vng mt pp th chnh xc s c xem l 6. Khi i l xu k t : Nu pp nh hn di ca xu th ch pp k t u tin ca xu c in ra. Nu khng c pp hoc nu pp ln hn hay bng di ca xu th c xu k t s c in ra. V d : Kt qu ra -435.645 -435.645 -435.645 "alphabeta" "alphabeta" "alpha" fw 10 10 8 8 vng 8 pp 2 0 vng 3 vng 6 Du c c c vng vng c Kt qu a ra -435.65 -436 -435.645000 alp alphabeta alpha di trng ra 7 4 11 3 9 5

Cc k t chuyn dng v ngha ca n : K t chuyn dng l mt hoc mt dy k hiu xc nh quy tc chuyn dng v dng in ra ca i tng ng. Nh vy s c tnh trng cng mt s s c in ra theo cc dng khc nhau. Cn phi s dng cc k t chuyn dng theo ng qui tc nh sn. Bng sau cho cc thng tin v cc k t chuyn dng. K t chuyn dng ngha

21

Chng 2: Cc lnh vo ra

d o

i c chuyn sang s nguyn h thp phn i c chuyn sang h tm khng du ( khng c s 0 ng trc ) i c chuyn sang h mi su khng du ( khng c 0x ng trc ) i c chuyn sang h thp phn khng du i c coi l mt k t ring bit i l xu k t, cc k t trong xu c in cho ti khi gp k t khng hoc cho ti khi s lng k t c xc nh bi cc c t v chnh xc pp. i c xem l float hoc double v c chuyn sang dng thp phn c dng [-]m.n..nE[+ hoc -] vi di ca xu cha n l pp. i c xem l float hoc double v c chuyn sang dng thp phn c dng [-]m..m.n..n vi di ca xu cha n l pp. chnh xc mc nh l 6. Lu rng chnh xc khng xc nh ra s cc ch s c ngha phi in theo khun dng f. Dng %e hoc %f, tu theo loi no ngn hn, khng in cc s 0 v ngha.

u c s

Ch : Mi dy k t khng bt u bng % hoc khng kt thc bng k t chuyn dng u c xem l k t hin th. hin th cc k t c bit : Cch vit \' \" \\ Cc v d : 1 printf("\" Nang suat tang : %d % \" \n\\d"",30,- "Nang suat tang ; 30 %" Hin th ' " \

22

Chng 2: Cc lnh vo ra

50); 2 n=8 float x=25.5, y=-47.335 printf("\n%f\n%*.2f",x,n,y); Lnh ny tng ng vi printf("\n%f\n%8.2f",x,n,y); V n=8 tng ng vi v tr * 2.4. Vo s liu t bn phm - hm scanf :

\d=-50 25.500000 -47.34

Hm scanf l hm c thng tin t thit b vo chun ( bn phm ), chuyn dch chng ( thnh s nguyn, s thc, k t vv.. ) ri lu tr n vo b nh theo cc a ch xc nh.

Cch dng : scanf(iu khin,i 1, i 2, ...); Xu iu khin cha cc c t chuyn dng, mi c t s to ra vic i dng bin tip sau ca scanf. c t c th vit mt cch tng qut nh sau : %[*][d...d]k t chuyn dng Vic c mt ca du * ni ln rng trng vo vn c d c bnh thng, nhng gi tr ca n b b qua ( khng c lu vo b nh ). Nh vy c t cha du * s khng c i tng ng. d...d l mt dy s xc nh chiu di cc i ca trng vo, ngha ca n c gii thch nh sau : Nu tham s d...d vng mt hoc nu gi tr ca n ln hn hay bng di ca trng vo tng ng th ton b trng vo s c c, ni dung ca n c dch v c gn cho a ch tng ng ( nu khng c du * ). Nu gi tr ca d...d nh hn di ca trng vo th ch phn u ca trng c kch c bng d...d c c v gn cho a ch ca bin tng ng. Phn cn li ca trng s c xem xt bi cc c t v i tng ng tip theo.

23

Chng 2: Cc lnh vo ra

V d : int a; float x,y; char ch[6],ct[6] scanf("%f%5f%3d%3s%s",&x&y&a&ch&ct0; Vi dng vo : 54.32e-1 25 12452348a Kt qu l lnh scanf s gn 5.432 cho x 25.0 cho y 124 cho a xu "523" v du kt thc \0 cho ch xu "48a" v du kt thc \0 cho ct K t chuyn dng : K t chuyn dng xc nh cch thc d c cc k t trn dng vo cng nh cch chuyn dch thng tin c c trc khi gn n cho cc a ch tng ng. Cch d c th nht l c theo trng vo, khi cc khong trng b b qua. Cch ny p dng cho hu ht cc trng hp. Cch d c th hai l c theo k t, khi cc khong trng cng c xem xt bnh ng nh cc k t khc. Phng php ny ch xy ra khi ta s dng mt trong ba k t chuyn dng sau : C, [ dy k t ], [^ dy k t ] Cc k t chuyn dng v ngha ca n : c Vo mt k t, i tng ng l con tr k t. C xt k t khong trng d Vo mt gi tr kiu int, i tng ng l con tr kiu int. Trng phi vo l s nguyn ld Vo mt gi tr kiu long, i tng ng l con tr kiu long. Trng phi vo l s nguyn o Vo mt gi tr kiu int h 8, i tng ng l con tr kiu int. Trng

24

Chng 2: Cc lnh vo ra

phi vo l s nguyn h 8 lo Vo mt gi tr kiu long h 8, i tng ng l con tr kiu long. Trng phi vo l s nguyn h 8 x Vo mt gi tr kiu int h 16, i tng ng l con tr kiu int. Trng phi vo l s nguyn h 16 lx Vo mt gi tr kiu long h 16, i tng ng l con tr kiu long. Trng phi vo l s nguyn h 16 f hay e Vo mt gi tr kiu float, i tng ng l con tr float, trng vo phi l s du phy ng lf hay le Vo mt gi tr kiu double, i tng ng l con tr double, trng vo phi l s du phy ng s Vo mt gi tr kiu double, i tng ng l con tr kiu char, trng vo phi l dy k t bt k khng cha cc du cch v cc du xung dng [ Dy k t ], [ ^Dy k t ] Cc k t trn dng vo s ln lt c c cho n khi no gp mt k t khng thuc tp cc k t t trong[]. i tng ng l con tr kiu char. Trng vo l dy k t bt k ( khong trng c xem nh mt k t ). V d : int a,b; char ch[10], ck[10]; scanf("%d%[0123456789]%[^0123456789]%3d",&a,ch,ck,&b); Vi dng vo : 35 13145 xyz 584235 S gn : 35 cho a xu "13145" cho ch xu "xyz' cho ck 584 cho b Ch :

25

Chng 2: Cc lnh vo ra

Xt on chng trnh dng nhp ( t bn phm ) ba gi tr nguyn ri gn cho ba bin a,b,c nh sau : int a,b,c; scanf("%d%d%d,&a,&b,&c); vo s liu ta c th thao tc theo nhiu cch khc nhau: Cch 1 : a ba s vo cng mt dng, cc s phn cch nhau bng du cch hoc du tab. Cch 2 : a ba s vo ba dng khc nhau. Cch 3 : Hai s u cng mt dng ( cch nahu bi du cch ho tab ), s th ba trn dng tip theo. Cch 4 : S th nht trn mt dng, hai s sau cng mt dng tip theo ( cch nahu bi du cch ho tab ), s th ba trn dng tip theo. Khi vo sai s bo li v nhy v chng trnh cha li gi n. 2.5. a kt qu ra my in : a kt qu ra my in ta dng hm chun fprintf c dng sau : fprintf(stdprn, iu khin, bin 1, bin 2,...); Tham s stdprn xc nh thit b a ra l my in. iu khin c dng c t nh lnh printf. Dng ging nh lnh printf, ch khc l in ra my in. V d : on chng trnh in ma trn A, c 8x6. Mi hng ca ma trn c in trn mt dng : float a[8][6]; int i,j; fprintf(stdprn,"\n%20c MA TRAN A\n\n\n",' ');

26

Chng 2: Cc lnh vo ra

for (i=0;i<8;++i) { for (j=0;j<6;++j) fprintf(stdprn,"%10.2f",a[i][j]); fprintf(stdprn,"\n"); }

27

You might also like