1. Trang chủ
  2. » Công Nghệ Thông Tin

Nhập và Xuất trong C

17 355 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 58,61 KB

Nội dung

Bài 4 Nhập Xuất trong C Mục tiêu: Kết thúc bài học này, bạn có thể:     !"#$% Giới thiệu &'(!)*+,-'./'(01!," 23,$'4 5% &*627/89:8;% <% &*6+% &'=>?@AB7(C%D:8;,*,= 6EF(!)27-'%G'H+H.27-F(=!CB +,/',+!06CF% &'I.2/9+F '/%&2/9+  6C,"'8J2'K!"#L%&'(E>.C+ ME+,/'N0(9C+M0!06C  0(9%&0(9*2O,(H%&0(9*2O, -'',$%D232P0>N>-0( 9%D+23,2KQ>K(A0(,2+'!%R+,/=J 230>%  4.1 Tập tin tiêu đề <stdio.h> &'H 2P.SN0TS4 #include <stdio.h> GU>,,/@,"preprocessor command)%&'I9.!"/#KVW=K% stdio.h ,W23E,K@header). DA''@ 23M'I%printf(), scanf(), putchar()getchar()230!0$'E ''stdio.h #*/27A% 4.2 Nhập xuất trong C (Input and Output) &2/9'I#/>K=%I1,4 • printf()X% • scanf()X% D+>E,+23-1E+,/$' !23@!(Y2OM%ZW6A$'F (0?23'% 4.2.1 printf() I1S6$WP>6=2P%[U>.1?$107% printf()23M+,/K0(9X'',$-%R\F >24 printf(“control string”, argument list); R]$,('^_.(0.(A>23U(Y 9>%I=CW,/_'L@!control string) 'L] '%D+,/C27AP]@],23.!+  ,/A#%IL@!C,*23V(K'V>!`“”.U>,U delimiters)%IL@!AW>@7(=2PU>4  Ký tự văn bản (Text characters)XZ'^!"#23?23]2 ->%I!'Ca2O23M'/U2O$,23%  Lệnh định dạng - bQA +,/']?23% cW,/(a=PW!"/%$',WS27A'  +,/%R%23M'printf()dVC>e%I,/  +,/27H$'A#!NC%cWS-=0 'E +,/=%  Các ký tự không in đượcXZ'^H(.!'Ca]T% cL,/^W>@S%cWS('^!"/ %W(W !%ZCf%5,/!KS!23L3(YU,/printf()4 Ðịnh dạng printf() scanf() g"#7,$I$ h h IL h h ]>K$$,$$ h h ]UWi,'' h h'Vh$ ]UWjZk=U h, h, ]UWjZk]J h$ h'Vh$ ]UWh'Vh$.']'H7 h ]>K!*l$$,$$ h h ], U!*RMmnZIRoip l$$$,$$ h h ](U!*l$',$$ h' h' Bảng 4.1: Mã định dạng trong printf () &'(CK.c, d, f, lf, e, g, u, s, ox,(W!% I6>2P'S!23e!0'ZCf%<4 Mã định dạng Quy ước in ấn h I']']>K% h q=]>KF]?23>K%q=U?Af ']%D0=UF']H7f].?23K] !*r(KC>E,,TH(KC% h$ cW'](KUf'](KC]2h% Bảng 4.2: Quy ước in ZY-!"/%,s“23MV(/'L@!.01=!"/ >,K-.1C23M2'ZCf%t4 ss :!"#\ sm :!"#“ hh :!"#% Bảng 4.3: Các ký tự đặc biệt trong chuỗi điều khiển ZC2PU>2H  L@!S!% Số Câu lệnh Chuỗi điều khiển Nội dung mà chuỗi điều khiển chứa đựng Danh sách tham số Giải thích danh sách tham số Hiển thị trên màn hình 5% mhp.trru h Id  A  ,/  trr _] trr <% mhp.5rvwu h Id  A  ,/  5rvw ZA 5w t% mx'' c'c%y$$%pu x'' c' c%y$$% Id ,  !" # B(C g*   D, g* x''  c' c%y$$% z% '{5rru mhp.'u h Id  A  ,/  I' Z0 5rr w% ms$,,'pu s$,,' Id ,  !" # B(C!"# !*23% g* g* $,,' &KTP f% |$$    mx'' n,$p }}%% mhp.u h Id  A  ,/   _L x''n,$ ~% }}%% '.•u '{ru •{5rru mh  hsp. '.•u hh Id  A  ,/ - #' '. • (0 r.5rr Bảng 4.4 : Chuỗi điều khiển mã định dạng Ví dụ 4.1 : GU>,W27-7CME'WL23$',/% I27->JW!"#7.]>K]#,$$.$$.,'% #include <stdio.h> void main() { int a = 10; float b = 24.67892345; char ch = ‘A’; printf(“\nInteger data = %d”, a); printf(“\nFloat Data = %f”, b); printf(“\nCharacter = %c”, ch); printf(“\nThis prints the string”); printf(“%s”, ”\nThis also prints a string”); } g06C27-24 Integer data = 10 Float Data = 24.678923 Character = A This prints the string This also prints a string  Bổ từ (Modifier) cho các lệnh định dạng trong printf() I,/(eNmodifier.>eVC>e]%U>,(eN 23'U,/printf(). D0@(eN23M-1U$'-#4 Bổ từ ‘-‘ R+,/?23(K'!*'.1?23(a=NH'M (K% Bổ từ xác định độ rộng I123MP!4float, double hay char array Lj%ZeNWW, W]>KWW€F2O+,/%I+,/WW€7?'!0  6CC'2O+,/%I+,/!H2P,P7?23(_MK +H'F>K=%•H .%10f ,,/' +,/!]#PWW 2O+,/,5r% Bổ từ xác định độ chính xác I123MP!float, double > mảng ký tự (char array, string)%ZeNWW H2302P.mPm,W]>K%D0 P!floatdouble.L] d]']tối đa23H(KCU% D0=U]F +,/!float haydouble236WW']d'(eN.- ]?23làm tròn%D0@L236@d-L?23cắt bỏ phần dư ra ở phía cuối%cW]!*r?23K'0]']##'W +,/H 723d'(eN%&27#.!'Ca?23K''L!"#%•H .  h5r%t,,/' +,/!float.PWW]'2O+,/,5rt H=U% Bổ từ ‘0’ &$'V./K'W2O23#/P!'Ca%D02OM] K'2OP]!*r.(eN>C23M% Bổ từ ‘l’ ZeN>23M]>K24long int>W]!double%cS 27A',%ld. Bổ từ ‘h’ ZeN>23M/!short$$%cS27A',%hd% Bổ từ ‘*’ ZeN>23M!2OM!*]d2PWWF2O]27- %D2!P(eN>.W]23>K=CdWW2O % I1S>$+(eN>'W0'%G=K.1$`WF]P ++,/!]>K% Ví dụ 4.2: /* Chương trình này trình bày cách dùng bổ từ trong printf() */ #include <stdio.h> void main() { printf(“The number 555 in various forms:\n”); printf(“Without any modifier: \n”); printf(“[%d]\n”, 555); printf(“With - modifier:\n”); printf(“[%-d]\n”, 555); printf(“With digit string 10 as modifier:\n”); printf(“[%10d]\n”, 555); printf(“With 0 as modifier: \n”); printf(“[%0d]\n”, 555); printf(“With 0 and digit string 10 as modifiers:\n”); printf(“[%010d]\n”, 555); printf(“With -, 0 and digit string 10 as modifiers:\n”); printf(“[%-010d]\n”, 555); } g06C22PU>4 The number 555 in various forms: Without any modifier: [555] With - modifier: [555] With digit string 10 as modifier: [ 555] With 0 as modifier: [555] With 0 and digit string 10 as modifiers: [0000000555] With -, 0 and digit string 10 as modifiers: [555 ] I1SM!"/‚[‘‚]’ d72O(a=7!01%g1M%d !*(eN.1>_M'W2OMWWP]>K%gM %10d 1>_M5r!'Ca'2O]23,@C$'V%D0 M(eNX.]?23'2O%D0M(eNr.1>_]?K 'r>-,!'Ca% ZU>O1S>$(eNMP]#% Ví dụ 4.3: /* Chương trình này trình bày cách dùng bổ từ trong printf() */ #include <stdio.h> void main() { printf(“The number 555.55 in various forms:\n”); printf(“In float form without modifiers:\n”); printf(“[%f]\n”, 555.55); printf(“In exponential form without any modifier:\n”); printf(“[%e]\n”, 555.55); printf(“In float form with - modifier:\n”); printf(“[%-f]\n”, 555.55); printf(“In float form with digit string 10.3 as modifier\n”); printf(“[%10.3f]\n”, 555.55); printf(“In float form with 0 as modifier:\n”); printf(“[%0f]\n”, 555.55); printf(“In float form with 0 and digit string 10.3”); printf(“as modifiers:\n”); printf(“[%010.3f]\n”, 555.55); printf(“In float form with -, 0 ”); printf(“and digit string 10.3 as modifiers:\n”); printf(“[%-010.3f]\n”, 555.55); printf(“In exponential form with 0”); printf(“ and digit string 10.3 as modifiers:\n”); printf(“[%010.3e]\n”, 555.55); printf(“In exponential form with -, 0”); printf(“ and digit string 10.3 as modifiers:\n”); printf(“[%-010.3e]\n\n”, 555.55); } g06C24 The number 555.55 in various forms: In float form without modifiers: [555.550000] In exponential form without any modifier: [5.555500e+02] In float form with - modifier: [555.550000] In float form with digit string 10.3 as modifier [ 555.550] In float form with 0 as modifier: [555.550000] In float form with 0 and digit string 10.3 as modifiers: [000555.550] In float form with -, 0 and digit string 10.3 as modifiers: [555.550 ] In exponential form with 0 and digit string 10.3 as modifiers: [05.555e+02] In exponential form with -,0 and digit string 10.3 as modifiers: [5.555e+02] &$'V'%f.1>_f']'=UV'%e, W']=>Kf']=(KCU%I1"/<]]  M'H K.]'](KCU,t.\0!06C!*23,  T% ZU>O.1S>$(eNMPL]%I1"YW2OA'(WL% 7+.1"VCWH.4'/P]!"#23% Ví dụ 4.4: /* Chương trình trình bày cách dùng bổ từ với chuỗi*/ #include <stdio.h> void main() { printf(“A string in various forms:\n”); printf(“Without any format command:\n”); printf(“Good day Mr. Lee. \n”); printf(“With format command but without any modifier:\n”); printf(“[%s]\n”, ”Good day Mr. Lee.”); printf(“With digit string 4 as modifier:\n”); printf(“[%4s]\n”, ”Good day Mr. Lee.”); printf(“With digit string 19 as modifier: \n”); printf(“[%19s]\n”, ”Good day Mr. Lee.”); printf(“With digit string 23 as modifier: \n”); printf(“[%23s]\n”, ”Good day Mr. Lee.”); printf(“With digit string 25.4 as modifier: \n”); printf(“[%25.4s]\n”, ”Good day Mr.Lee.”); printf(“With – and digit string 25.4 as modifiers:\n”); printf(“[%-25.4s]\n”, ”Good day Mr.shroff.”); } g06C24 A string in various forms: Without any format command: Good day Mr. Lee. With format command but without any modifier: [Good day Mr. Lee.] With digit string 4 as modifier: [Good day Mr. Lee.] With digit string 19 as modifier: [ Good day Mr. Lee.] With digit string 23 as modifier: [ Good day Mr. Lee.] With digit string 25.4 as modifier: [ Good] With - and digit string 25.4 as modifiers: [Good ] D+!"#(H!*23,2Y!"#%&#1,2$'] 2PSASCII (Bộ mã chuẩn Mỹ cho việc trao đổi thông tin - American Standard Code for Information Interchange)%IFW(023*2P!"#>W]M>' !F(0%•H *C@>4 Ví dụ 4.5: #include <stdio.h> void main() { int a = 80; char b= ‘C’; printf(“\nThis is the number stored in ‘a’ %d”,a); printf(“\nThis is a character interpreted from ‘a’ %c”,a); printf(“\nThis is also a character stored in ‘b’ %c”,b); printf(“\nHey! The character of ‘b’ is printed as a number! %d“, b); } g06C22PU>4 This is the number stored in `a’ 80 This is a character interpreted from `a’ P This is also a character stored in `b’ C Hey! The character of `b' is printed as a number!67 g06C>*C/MVC/*FSnI::%cVM(0 a bS23!(',(0!intchar.21S232,!"#]O'/ M(W!%GV>FI1/,"+,/23,'% gMU,/printf()'WL7ƒr!"#KWT.!]TC aLT(Y!"/s223-(>'H 2PU>4 Ví dụ 4.6: /* Chương trình trình bày cách dùng một chuỗi dài các ký tự*/ #include <stdio.h> void main() { printf(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\aaaaaaaaaaaaaaaaaaaaaaaa aaaaa”); } g06C24     &'H K.L'U,/printf()<w<!"#%&'!WTB(CAƒr!"#.' L23YWt'!06C2K% 4.2.2 scanf() 23 +,/%g*F24 scanf(<Chuỗi các định dạng>, <Danh sách các tham số>); G23 (K'U,/J23 M1'U,/ % D+,/.('^(eN]23(,'-J3,/ '.1U$'W]!(/4  Sự khác nhau trong danh sách tham số giữa printf() scanf()  printf() MK(0._]._L(A.2 +' €P(0%cW'€PW(0,W +,/A#dF7(023 +'(WP%D+'€?23(,0Y27%g =U$' +6>a']4 • D0]'W(0!+,/7(C.„'K(0MP!"/& 2P% • g'W(0W!+,/\!*CW(]!7(C. .,'.'(,$.!* &2PK(0%  Sự khác nhau trong lệnh định dạng giữa printf() scanf() 5% g*M>Eh% <% cShh$M/6CW%ICW!"/M>E.WL ']>!*UW2O]JM>E% Cách thức hoạt động của scanf()  +!"#!*232!"#!'Ca.!"#U(.!"#] T6>0!'W2O!01(a=%I#27A+,/P +2O']$'WA#.(€6+!"#!'Ca(K '%R'.='23C7WT.k,1HW!"#U. !'Ca>P+2O'%D(€6+!'CaP 23+,/% Ví dụ 4.7: I27-*C/Mscanf(). #include <stdio.h> void main() { int a; float d; char ch, name[40]; printf(“Please enter the data\n”); scanf(“%d %f %c %s”, &a, &d, &ch, name); printf(“\nThe values accepted are: %d, %f, %c, %s”, a, d, ch, name); } g06C24 Please enter the data 12 67.9 F MARK The values accepted are:12, 67.900002, F, MARK R+,/=',4 5<f~%… icn†g 'V24 5< f~%… i cn†g J23'(0a.d.ch.name% ‡$H !4 Ví dụ 4.8: #include <stdio.h> void main() { int i; float x; char c; . scanf(“%3d %5f %c”, &i, &x, &c); } D0+,/',4 <55r%tzwi g27-23#.-<5?P.5r%tz?P!"#w?23'%IT ,,VHi?((€6% gd„W@W2O(K'.H h5r.^d] 5r!"#'VP!"#!'Ca=K(A!"#'=K%G@>J '  ! int.float double% •H 2PU>*C/ 'WL^+!"#0' !'Ca%IL?@!*2(P'~…!"#.ƒr!"# ('^!"#],,23K'7]L% Ví dụ 4.9: #include <stdio.h> void main() { char line[80]; /* line[80] là một mảng lưu 80 ký tự */ scanf(“%[ ABCDEFGHIJKLMNOPQRSTUVWXYZ]”, line); } cS!*hˆ‰Q+!"#23Q(K'ˆ‰232+  !"#L3,/%D0LBEIJING CITY23'N0(9.!27- 23#.'(WL?23'CW!Ld',!"#0'!'C a%D0L230, Beijing city.d!"#7Z23'C.!-!"#0  2O=K'2O3>,‚$Š23*2!"#=K(K'L% [...]... th c hiện đ c viết dữ liệu vào tập tin Chúng ta sẽ nói về Thiết bị nhập/ xuất Trong C, Thiết bị nhập/ xuất chuẩn là một thiết bị luồng C c hàm trong Thiết bị nhập/ xuất chuẩn hướng c c thao t c đến thiết bị nhập xuất chuẩn c a hệ thống C c hàm đơn giản nhất c a Thiết bị nhập/ xuất chuẩn là:  getchar() – Ð c một chỉ một ký tự từ bàn phím  putchar() – Xuất một ký tự đơn ra màn hình 4.3.1 getchar()... c c macro c a nhiều hàm nhập xuất (input/output function) đư c dùng trong C  Thiết bị nhập/ xuất chuẩn (Console I/O) liên quan đến những hoạt động c a bàn phím màn hình c a máy tính Nó chứa c c hàm định dạng không định dạng  Hàm nhập xuất định dạng là printf() scanf()  Hàm nhập xuất không định dạng là getchar() putchar()  Hàm scanf() đư c dùng cho dữ liệu nhập vào c định dạng, trong. .. h cTrong C, Nhập Xuất đư c th c hiện bằng c ch dùng c c hàm Bất c chương trình nào trong C đều c quyền truy c p tới ba tập tin chuẩn Chúng là tập tin nhập chuẩn (stdin), tập tin xuất chuẩn (stdout) bộ lỗi chuẩn (stderr) Thông thường tập tin nhập chuẩn là bàn phím (keyboard), tập tin xuất chuẩn là màn hình (screen) tập tin lỗi chuẩn c ng là màn hình  Tập tin tiêu đề chứa c c. .. kh c trong scanf() mà không là mã định dạng trong chuỗi điều khiển phải đư c nhập vào chính x c nếu không sẽ phát sinh lỗi Ð c điểm này đư c dùng để chấp nhận dấu phân c ch phẩy (,) Ví dụ chuỗi dữ liệu 10, 15, 17 lệnh nhập vào scanf(“%d, %f, %c , &intgr, &flt, &ch); Chú ý rằng dấu phẩy trong chuỗi chuyển đổi tương ứng dấu phẩy trong chuỗi nhập vì vậy nó sẽ c ch c năng như dấu phân c ch Ký... scanf() đư c th c thi, một chuỗi c chiều dài không x c định (nhưng không quá 79 ký tự) sẽ đư c nhập vào từ thiết bị nhập chuẩn đư c gán cho mảng Sẽ không c giới hạn nào trên c c ký tự c a chuỗi, ngoại trừ tất c chúng chỉ nằm trên một hàng Ví dụ chuỗi sau: All’s well that ends well! C thể đư c nhập vào từ bàn phím đư c gán cho mảng Bổ từ * cho kết quả kh c nhau trong scanf() Dấu * đư c dùng... phân), do vậy y đư c gán giá trị c a ký tự c t c là số 99 trong hệ thập phân Xét đoạn mã sau: #include void main() { char c1 , c2 , c3 ; ………… scanf(“ %c% c %c , &c1 , &c2 , &c3 ); ……………… } Nếu dữ liệu nhập vào là: a b c (với khoảng trắng giữa c c ký tự), thì kết quả c a phép gán: c1 = a, c2 = , c3 = b Ở đây chúng ta c thể thấy c2 chứa một khoảng trắng vì chuỗi nhập c chứa ký tự khoảng... qua c c ký tự khoảng trắng này đ c ký tự tiếp theo không phải là ký tự khoảng trắng, ta nên dùng tập chuyển đổi %1s scanf(“ %c% 1s%1s”, &c1 , &c2 , &c3 ); Khi đó kết quả sẽ kh c đi với c ng dữ liệu nhập vào như trư c kết quả đúng như ý định c a ta: c1 = a, c2 = b, c3 = c 4.3 Bộ nhớ đệm Nhập Xuất (Buffered I/O) Ngôn ngữ C bản thân nó không định nghĩa c c thao t c nhập xuất Tất c thao t c nhập. .. nhập xuất đư c th c hiện bởi c c hàm c sẵn trong thư viện hàm c a C Thư viện hàm C chứa một hệ thống hàm riêng mà nó điều khiển c c thao t c này Ðó là: • Bộ nhớ đệm Nhập Xuất – đư c dùng để đ c viết c c ký tự ASCII Một vùng đệm là nơi lưu trữ tạm thời, nằm trên bộ nhớ máy tính ho c trên thẻ nhớ c a bộ điều khiển thiết bị (controller card) C c ký tự nhập vào từ bàn phím đư c đưa vào... đư c dùng để xuất ra dữ liệu theo một định dạng c thể  Chuỗi điều khiển c a printf() scanf() phải luôn tồn tại bên trong dấu nháy kép “” Chuỗi này sẽ chứa một tập c c lệnh định dạng Mỗi lệnh định dạng chứa ký hiệu %, một tùy chọn c c bổ từ c c dạng kiểu dữ liệu x c định  Sự kh c nhau chính giữa printf() scanf() là hàm scanf() dùng địa chỉ c a biến chứ không phải là tên biến  Hàm getchar()... đưa vào bộ nhớ đợi đến khi người dùng nhấn phím return hay enter thì chúng sẽ đư c thu nhận như một khối cung c p cho chương trình Bộ nhớ đệm nhập xuất c thể đư c phân thành:  Thiết bị nhập/ xuất chuẩn (Console I/O)  Tập tin đệm nhập/ xuất (Buffered File I/O) Thiết bị nhập/ xuất chuẩn liên quan đến những hoạt động c a bàn phím màn hình c a máy tính Tập tin đệm nhập/ xuất liên quan đến . #include <stdio.h> void main() { char c1 , c2 , c3 ; ………… scanf(“ %c% c %c ,& ;c1 , & ;c2 , & ;c3 ); ……………… } D0+,/',4 a b c. putchar(‘ ’); putchar(‘L’); putchar(‘ ’); putchar(‘ ’); putchar(‘ ’); putchar(‘ ’); putchar(‘L’); putchar(‘ ’); putchar(‘ ’); putchar(‘ ’); putchar(‘ ’);

Ngày đăng: 03/10/2013, 17:20

HÌNH ẢNH LIÊN QUAN

printf() được dùng để hiển thị dữ liệu trên thiết bị xuất chuẩn – console (màn hình). Dạng mẫu chung của hàm này như sau:  - Nhập và Xuất trong C
printf () được dùng để hiển thị dữ liệu trên thiết bị xuất chuẩn – console (màn hình). Dạng mẫu chung của hàm này như sau: (Trang 2)
Bảng 4.3: Các ký tự đặc biệt trong chuỗi điều khiển - Nhập và Xuất trong C
Bảng 4.3 Các ký tự đặc biệt trong chuỗi điều khiển (Trang 3)
Bảng 4.2: Quy ước in - Nhập và Xuất trong C
Bảng 4.2 Quy ước in (Trang 3)
sẽ xuất hiện trên màn hình. Ta nhập vào một ký tự, trong ví dụ là S, qua bàn phím và nhấn Enter - Nhập và Xuất trong C
s ẽ xuất hiện trên màn hình. Ta nhập vào một ký tự, trong ví dụ là S, qua bàn phím và nhấn Enter (Trang 14)

TỪ KHÓA LIÊN QUAN

w