cuốn sách gpt4 ai đã làm

c - 为什么 scanf 将值传递给我的函数,不希望 scanf 将值发送给被调用者

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 06:55:54 29 4
mua khóa gpt4 Nike

Tôi biết quét() việc sử dụng không được khuyến khích. Nhưng tôi gặp một vấn đề, scanf gửi giá trị stdin tới hàm stdin tiếp theo. Tôi muốn biết tại sao điều này lại xảy ra.

Mã số:

#include 

khoảng trống ffgets() {
tên char[40];
printf("Tên bạn là gì?");
if (fgets(name, 40, stdin)) {
printf("Xin chào %s", name);
}
}

int main(int argc, char **argv) {
int một;
printf("nhập một số: ");

int res = scanf("%d", &a);
nếu (res > 0) {
printf("Số nguyên hợp lệ %d.\n", a);
} khác {
printf("Không phải là số\n");
}

ffgets();
return 0;
}

Đầu ra:

Trường hợp thử nghiệm 1:

Tại sao hàm không yêu cầu đầu vào tiêu chuẩn, nó chỉ in chuỗi trống

 ./a.out 
nhập một số: 23
Số nguyên hợp lệ 23.
Xin chào tên bạn là gì?

Trường hợp thử nghiệm 2: Tôi đã nhập một chuỗi có các ký tự đặc biệt truyền tên.

./a.out 
nhập một số: ngẫu nhiên##¤
Nó không phải là một con số
Tên bạn là gì? Xin chào ngẫu nhiên##¤

Tôi không muốn chuyển giá trị đầu vào tiêu chuẩn từ main sang hàm, tôi phải làm sao?

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress