Chương 4 giúp người học tìm hiểu các hàm định dạng nhập/xuất và sử dụng các hàm nhập/xuất ký tự. Nội dung trình bày trong chương này gồm có: Nhập/xuất chuẩn, tập tin Header , nhập/xuất được định dạng, mã định dạng, bổ từ trong hàm printf, sự khác nhau về danh sách đối số giữa printf( ) và scanf( ),... Mời các bạn cùng tham khảo.
Nhập Xuất C Chương Input and Output in C Input and Output in C / of 27 Mục tiêu học Tìm hiểu hàm định dạng Nhập/Xuất scanf(), printf() Sử dụng hàm Nhập/Xuất ký tự getchar(), putchar() Elementary Programming with C/Session 4/ of 27 Nhập/Xuất chuẩn Thư viện chuẩn C cung cấp hàm xử lý cho việc nhập xuất Thư viện chuẩn có hàm I/O, dùng để quản lý việc nhập, xuất, thao tác ký tự chuỗi Thiết bị nhập chuẩn thường bàn phím Thiết bị xuất chuẩn thường hình (console) Nhập xuất xử lý qua tập tin thay từ thiết bị chuẩn Elementary Programming with C/Session 4/ of 27 Tập tin Header #include • Đây câu lệnh tiền xử lý stdio.h tập tin header (header file) Chứa macro sử dụng cho nhiều hàm nhập/xuất C Các macro stdio.h giúp hàm printf(), scanf(), putchar(), getchar() thực thi Elementary Programming with C/Session 4/ of 27 Nhập/Xuất định dạng printf( ) – Dùng cho xuất có định dạng scanf( ) – Sử dụng để nhập có định dạng Các đặc tả định dạng - qui định dạng thức mà theo giá trị biến nhập vào in Elementary Programming with C/Session 4/ of 27 printf ( ) Được dùng để hiển thị liệu thiết bị xuất chuẩn hình (console) Cú pháp printf ( “control string”, argument list); Danh sách đối số (argument list) chứa hằng, biến, biểu thức hàm phân cách dấu phẩy Phải có lệnh định dạng “control string” cho đối số danh sách Các lệnh định dạng phải khớp với danh sách đối số số lượng, kiểu thứ tự control string đặt dấu nhấy kép “ ”, dấu phân cách Elementary Programming with C/Session 4/ of 27 printf ( ) (tt.) control string chứa ba kiểu phần tử sau: Các ký tự văn : gồm ký tự in Các lệnh định dạng : bắt đầu với ký hiệu % theo sau mã định dạng tương ứng cho phần tử liệu Các ký tự không in : gồm tab, blank new_line Elementary Programming with C/Session 4/ of 27 Mã định dạng Định dạng printf() scanf() Ký tự đơn (single character) %c %c Chuỗi (string) %s %s Số nguyên có dấu (signed decimal integer) %d %d Kiểu float - dạng dấu chấm thập phân (decimal notation) %f %f %e Kiểu float - dạng dấu chấm thập phân %lf %lf Kiểu float - dạng lũy thừa (exponential notation) %e %f or %e Kiểu float ( %f hay %e , ngắn hơn) %g Số nguyên không dấu (unsigned decimal integer) %u %u Số nguyên hệ 16 không dấu - sử dụng “ABCDEF” (unsigned hexadecimal integer) %x %x Số nguyên hệ không dấu (unsigned octal integer) %o %o Trong bảng : c, d, f, lf, e, g, u, s, o x đặc tả kiểu Elementary Programming with C/Session 4/ of 27 Mã định dạng (tt.) Mã định dạng Các qui ước in %d Các số số nguyên %f Các chữ số phần nguyên in Phần thập phân in chữ số Nếu phần thập phân chữ số, thêm chữ số vào từ bên phải, ngược lại làm tròn số từ bên phải %e Một số bên trái dấu chấm thập phân vị trí bên phải, %f Elementary Programming with C/Session 4/ of 27 Mã định dạng (tt.) ST T Lệnh Chuỗi điều khiển Nội dung chuỗi điều khiển Danh sách đối số Giải thích danh sách đối số Hiển thị hình printf(“%d”,300); %d Chỉ chứa lệnh định dạng 300 Hằng 300 printf(“%d”,10+5); %d Chỉ chứa lệnh định dạng 10 + Biểu thức 15 printf(“Good Morning Mr Lee.”); Good Morning Mr Lee Chỉ chứa ký tự văn Rỗng Rỗng Good Morning Mr Lee int count = 100; printf(“%d”,count); %d Chỉ chứa lệnh định dạng count Biến 100 printf(“\nhello”); \nhello Chứa ký tự không in ký tự văn Rỗng Rỗng hello on a new line #define str “Good Apple “ …… printf(“%s”,str); %s Chỉ chứa lệnh định dạng str Hằng ký hiệu Good Apple …… int count,stud_num; count=0; stud_num=100; printf(“%d %d\n”,count, stud_num); %d %d Chứa lệnh định dạng ký tự không in count, stud_num Hai biến , 100 Elementary Programming with C/Session 4/ 10 of 27 Bổ từ hàm printf( ) (tt.) Độ xác Được sử dụng với kiểu float, double mảng ký tự (chuỗi) Nếu dùng với kiểu float hay double, chuỗi số xác định số lượng lớn số in bên phải dấu chấm thập phân Bổ từ ‘0’ Mặc định khoảng trống thêm vào trường Nếu người dùng muốn thêm số vào trường bổ từ ‘0’ dùng Bổ từ ‘l’ Bổ từ dùng hiển thị đối số nguyên kiểu int hay double Mã định dạng tương ứng %ld Elementary Programming with C/Session 4/ 15 of 27 Bổ từ hàm printf( ) (tt.) Bổ từ ‘h’ Bổ từ sử dụng để hiển thị dạng short int Mã định dạng tương ứng %hd Bổ từ ‘*’ Nếu người dùng không muốn xác định độ rộng trường muốn chương trình xác định điều đó, bổ từ sử dụng Elementary Programming with C/Session 4/ 16 of 27 Ví dụ bổ từ /* This program demonstrate the use of Modifiers in printf() */ #include 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 as modifier : \n”); printf(“[%0d]\n”,555); printf(“With 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); } Elementary Programming with C/Session 4/ 17 of 27 Ví dụ bổ từ Kết hình: Elementary Programming with C/Session 4/ 18 of 27 scanf( ) Được sử dụng để nhập liệu Dạng tổng quát hàm scanf() scanf(“control string”, argument list); Những định dạng dùng hàm printf() sử dụng với cú pháp hàm scanf() Elementary Programming with C/Session 4/ 19 of 27 Sự khác danh sách đối số printf( ) scanf( ) printf() sử dụng tên biến, hằng, biểu tượng biểu thức scanf() sử dụng trỏ tới biến Danh sách đối số scanf() phải theo qui tắc : Đọc giá trị vào biến có kiểu liệu sở, sử dụng ký hiệu & trước tên biến Đọc giá trị vào biến có kiểu liệu dẫn xuất, khơng sử dụng & trước tên biến Elementary Programming with C/Session 4/ 20 of 27 Sự khác lệnh định dạng printf( ) scanf( ) Khơng có tuỳ chọn %g Mã định dạng %f %e giống Elementary Programming with C/Session 4/ 21 of 27 Ví dụ với hàm scanf( ) #include 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(“\n The values accepted are: %d,%f,%c,%s”,a, d,ch,name); } Elementary Programming with C/Session 4/ 22 of 27 Vùng đệm Nhập/Xuất Được sử dụng để đọc viết ký tự ASCII Một vùng đệm (buffer) không gian lưu trữ tạm thời nhớ thẻ điều khiển thiết bị Bộ đệm Nhập/Xuất chia làm : Console I/O Buffered File I/O Elementary Programming with C/Session 4/ 23 of 27 Console I/O Các hàm Console I/O chuyển thao tác đến thiết bị xuất nhập chuẩn hệ thống Trong ‘C’ hàm console I/O đơn giản là: getchar( ) - đọc ký tự từ bàn phím putchar( ) - xuất ký tự lên hình Elementary Programming with C/Session 4/ 24 of 27 getchar( ) Dùng đọc liệu nhập, ký tự từ bàn phím Các ký tự đặt vùng đệm đến người dùng gõ phím enter Hàm getchar( ) khơng có đối số, phải có cặp dấu ngoặc ( ) Elementary Programming with C/Session 4/ 25 of 27 Ví dụ hàm getchar() /*Program to demonstrate the use of getchar()*/ #include void main() { char letter; printf(“\nPlease enter any character:“); letter = getchar(); printf(“\nThe character entered by you is %c“, letter); } Elementary Programming with C/Session 4/ 26 of 27 putchar( ) Hàm xuất ký tự ‘C’ Có đối số Đối số hàm putchar( ) : Một ký tự đơn Một mã định dạng Một biến ký tự Elementary Programming with C/Session 4/ 27 of 27 Các tùy chọn chức putchar( ) Tham số Biến ký tự Hàm putchar(c) Chức Hiển thị nội dung biến ký tự c Hằng ký tự putchar(‘A’) Hằng ký tự A Hằng số putchar(‘5’) Hằng số Mã định dạng putchar(‘\t’) Chèn ký tự khoảng trắng Mã định dạng putchar(‘\n’) Chèn ký tự xuống dòng Elementary Programming with C/Session 4/ 28 of 27 putchar( ) /* This program demonstrates the use of constants and escape sequences in putchar()*/ #include void main(){ putchar(‘H’); putchar(‘\n’); putchar(‘\t’); putchar(‘E’); putchar(‘\n’); Ví dụ putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘O’); } Elementary Programming with C/Session 4/ 29 of 27 ... viện chuẩn C cung c? ??p hàm xử lý cho vi? ?c nhập xuất Thư viện chuẩn c? ? hàm I/O, dùng để quản lý vi? ?c nhập, xuất, thao t? ?c ký tự chuỗi Thiết bị nhập chuẩn thường bàn phím Thiết bị xuất chuẩn thường... (header file) Chứa macro sử dụng cho nhiều hàm nhập/ xuất C C? ?c macro stdio.h giúp hàm printf(), scanf(), putchar(), getchar() th? ?c thi Elementary Programming with C/ Session 4/ of 27 Nhập/ Xuất định... Programming with C/ Session 4/ 23 of 27 Console I/O C? ?c hàm Console I/O chuyển thao t? ?c đến thiết bị xuất nhập chuẩn hệ thống Trong ? ?C? ?? hàm console I/O đơn giản là: getchar( ) - đ? ?c ký tự từ