Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C
36
Nếu trong đặc tả có thành phần xác định độ rộng tối đa (
n) thì một trường sẽ kết
thúc hoặc khi gặp khoảng trống, hay kí tự không phù hợp hoặc đã đủ độ dài
n
Ví dụ
int a,b; float x;
scanf(“%d%2d%3f”,&a,&b, &x);
với dòng vào là:
143
537 34
↵
thì
:
- khoảng trắng đầu tiên bị loại bỏ, 143 là trường thứ nhất được gán vào a,
- hai khoảng trắng bị loại bỏ, 53 là trường thứ hai được gán vào b,
- một khoảng trắng bị loại bỏ, 7 được gán vào x (còn lại
34
↵ trong dòng
vào)
Lưu ý:
-
Số các đặc tả phải tương ứng với số con trỏ trong danh sách con trỏ
-
Ký tự định kiểu trong đặc tả phải phù hợp với kiểu của con trỏ cần nhập liệu.
-
Dữ liệu nhập từ bàn phím phải phù hợp với các đặc tả.
-
Hàm scanf trả về số nguyên là số trường được nhập dữ liệu
c. Hàm gets
Cú pháp:
char
*
gets(char
*
s);
Chức năng của hàm gets là nhập một xâu kí tự từ bàn phím, khác với hàm scanf với
đặc tả “%s” kết thúc nội xâu khi gặp dấu cách hoặc enter, tức là xâu không thể có dấu
cách, hàm gets chỉ kết thúc khi gặp enter (kí tự ‘\n’). Xâu kí tự được ghi vào s (với s là
mảng các kí tự hoặc con trỏ kí tự), dấu kết thúc xâu (‘\0’ - kí tự có mã 0 ) được tự động
thêm vào cuối xâu. Hàm trả về địa chỉ của xâu được nhập.
Chú ý: hàm gets loại bỏ ký tự Enter(‘\n’) trên dòng vào nhưng ký tự này không được
đưa vào s mà tự động thêm ký tự kết thúc xâu (’\0’) vào cuối của s.
¾
Chia sẻ với bạn bè của bạn: