1. Giới thiệu
Đối với mọi ngôn ngữ lập trình, thao
tác nhập/xuất dữ liệu luôn là thao tác cơ bản và quan trọng mà mỗi lập trình
viên cần nắm rõ. Bài viết này sẽ cung cấp kiến thức cơ bản về các hàm nhập xuất
chuẩn (Standard input/output) trong C.
Trong bài này tôi sẽ hướng dẫn các
bạn hiểu ý nghĩa và cách sử dụng hàm printf và scanf.
Khi sử dụng hàm phải khai báo tiền xử
lý #include <stdio.h> .
2. Tổng quan
♦ printf - Hàm xuất dữ liệu ra màn hình (Standard output device)
♦ scanf -Hàm nhập dữ liệu từ bàn phím (Standard input
device).
1.
Hàm printf
Cú pháp:
Cú pháp:
printf ("chuỗi định dạng"[, đối mục 1, đối mục 2,…]);
|
2.
- printf: tên hàm, phải viết bằng chữ thường./
- đối mục 1,…: là các mục dữ kiện cần in ra màn hình. Các đối mục này có thể là biến, hằng hoặc biểu thức phải được định trị trước khi in ra.
- chuỗi định dạng: được đặt trong cặp nháy kép (" ")
- printf: tên hàm, phải viết bằng chữ thường./
- đối mục 1,…: là các mục dữ kiện cần in ra màn hình. Các đối mục này có thể là biến, hằng hoặc biểu thức phải được định trị trước khi in ra.
- chuỗi định dạng: được đặt trong cặp nháy kép (" ")
Mã định dạng
|
%c : Ký tự đơn
%s : Chuỗi %d : Số nguyên thập phân có dấu %f : Số chấm động (ký hiệu thập phân) %e : Số chấm động (ký hiệu có số mũ) %g : Số chấm động (%f hay %g) %x : Số nguyên thập phân không dấu %u : Số nguyên hex không dấu %o : Số nguyên bát phân không dấu |
3.
Các ký tự điều khiển và
ký tự đặc biệt
|
\n : Nhảy xuống dòng kế tiếp canh về cột đầu tiên.
\t : Canh cột tab ngang. \r : Nhảy về đầu hàng, không xuống hàng. \a : Tiếng kêu bip. \\ : In ra dấu \ \" : In ra dấu " \' : In ra dấu ' %%: In ra dấu % |
4.
Hàm scanf
Cú pháp:
Cú pháp:
scanf ("chuỗi
định dạng"[, đối mục 1, đối mục 2,…]);
|
5.
- scanf: tên hàm, phải viết bằng chữ thường.
- khung định dạng: được đặt trong cặp nháy kép (" ") là hình ảnh dạng dữ liệu nhập vào.
- đối mục 1,…: là danh sách các đối mục cách nhau bởi dấu phẩy, mỗi đối mục sẽ tiếp nhận giá trị nhập vào.
- scanf: tên hàm, phải viết bằng chữ thường.
- khung định dạng: được đặt trong cặp nháy kép (" ") là hình ảnh dạng dữ liệu nhập vào.
- đối mục 1,…: là danh sách các đối mục cách nhau bởi dấu phẩy, mỗi đối mục sẽ tiếp nhận giá trị nhập vào.
3. Chương trình minh họa
1 /* Chuong trinh
nhap vao 2 so a, b in ra tong*/
2 #include 3 void main(void) 4 { 5 int a, b; 6 printf("Nhap vao so a: "); 7 scanf("%d", &a); 8 printf("Nhap vao so b: "); 9 scanf("%d", &b); 10 printf("Tong cua 2 so %d va %d la %d.\n", a, b, a+b); 11 printf("Tong cua 2 so %5d va %3d la %1d . \n", a, b, a+b); 12 printf("Tong cua 2 so %-5d va %-3d la %-1d . \n", a, b, a+b); 13 printf("Tong cua 2 so %02d va %03d la %04d . \n", a, b, a+b); 14 } |
► Kết quả in ra màn hình
Nhap vao so a: 4
Nhap vao so b: 14 Tong cua 2 so 4 va 14 la 18. Tong cua 2 so 4 va 14 la 18. Tong cua 2 so 4 va 14 la 18. Tong cua 2 so 04 va 014 la 0018. _ |
Dòng thứ 2: chứa phát biểu tiền xử lý #include . Vì trong
chương trình này ta sử dụng hàm thư viện của C là printf, do đó
bạn cần phải có khai báo của hàm thư viện này để báo cho trình biên
dịch C biết. Nếu không khai báo chương trình sẽ báo lỗi.
Dòng 7 và 9:
Dòng 10:
Dòng 11 :
Bề rộng trường sẽ kéo kết quả sang phải.
Dòng 7 và 9:
Dòng 10:
Dòng 11 :
Bề rộng trường sẽ kéo kết quả sang phải.
Dòng 12 : Dấu trừ trước bề rộng
trường sẽ kéo kết quả sang trái.
Dòng 13: printf("Tong cua 2 so %02d va %03d la %04d . \n", a, b, a+b);
1 2 3
1. %02d : thêm 1 số 0 trước -> đủ 2 kí tự
2. %03d : thêm 1 số 0 trước -> đủ 3 kí tự
3. %04d : thêm 2 số 0 trước -> đủ 4 kí tự
1 2 3
1. %02d : thêm 1 số 0 trước -> đủ 2 kí tự
2. %03d : thêm 1 số 0 trước -> đủ 3 kí tự
3. %04d : thêm 2 số 0 trước -> đủ 4 kí tự
Điện Tử eChipKool.Com - Chia sẻ kiến thức - Kết nối đam mê điện tử