Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C
35
u
Unsigned int
unsigned int *arg
U
Unsigned int
unsigned long *arg
x
Hexadecimal
int
*arg
X
Hexadecimal
int
*arg
s
Character string char arg[]
c
Character char *arg
- * đây cũng là thành phần tuỳ chọn, nếu có thì tác dụng của nó là sẽ bỏ qua một
thành phần dữ liệu được xác định bởi đặc tả này, như vậy sẽ không có đối tương
ứng với đặc tả này.
Ví dụ:
scanf(“%d%*c%d”,&a,&b);
trong dòng này chúng ta sẽ nhập 1 thành phần (gọi là 1 trường) số nguyên vào a,
sau đó bỏ qua một thành phần là kí tự, và tiếp theo là một số nguyên vào b.
•
Quy cách nhập dữ liệu
Khi chúng ta nhập dữ liệu từ bàn phím, kết thúc nhập bằng Enter (
↵), thì tất cả
những kí tự chúng ta gõ trên bàn phím đều được lưu trong vùng đệm nhập dữ liệu (gọi
là dòng vào- stdin) - dòng vào kết thúc bởi (
↵), dữ liệu trên dòng vào này sẽ được cắt
thành từng trường tuần tự từ trái qua phải và gán vào các biến (hoặc vùng nhớ) xác
định tương ứng bởi các con trỏ, các phần đã tách được sẽ bị loại khỏi dòng vào.
Trước khi tách giá trị một trường thì các khoảng trắng phía trước của trường nếu có
sẽ bị loại bỏ. Nếu trong đặc tả không có thành phần (
n) quy định độ dài tối đa một
trường thì
các trường được xác định bởi các ký tự dấu cách, tab, enter (gọi chung là
khoảng trắng ký hiệu là ) hoặc khi gặp ký tự không phù hợp với đặc tả hiện tại.
Nếu trên dòng vào có nhiều hơn các thành phần yêu cầu của hàm nhập thì các thành
phần chưa được nhận vẫn còn lưu trên dòng vào.
Ví dụ:
int a,b; float x;
scanf(“%d%%d%f”,&a,&b, &x);
với dòng vào là:
Chia sẻ với bạn bè của bạn: