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

Làm cách nào để chấp nhận và đồng thời tắt tiếng đầu vào không mong muốn? (quét)

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

tôi đang chơi quét Tôi gặp phải một vấn đề nhỏ...cụ thể hơn là tôi muốn đọc toàn bộ nội dung đầu vào và bỏ qua phần còn lại. Hãy để tôi nói cho bạn biết ý tôi là gì:

#include 

int main(void)
{
int number_of_iterations = 1;
vòng tròn int = 0;

scanf("%d", &number_of_iterations);
unsigned int chr[number_of_iterations][8];

while (number_of_iterations > vòng tròn) {
scanf("%x", chr[circles]);
vòng tròn++;
}

intcircle2 = 0;
trong khi (vòng tròn2
printf("%x \n", chr[circles2]);
vòng tròn2++;
}

return 0;
}

Điều này sẽ yêu cầu đầu vào X, nhưng nếu tôi nhập nội dung như thế này:

1 1CAAC

28 EAAEB5
F489AD95
CAAC

28 EAAEB5
F489AD95 F489AD95 EAAEB5
F489AD95 F489AD95

Đầu vào sẽ chiếm 1 1CAAC Nhưng tôi muốn phần còn lại có thể đọc được nhưng lại bị vứt đi... Có chức năng nào để làm việc này không?

Dominiks-MacBook-Pro-2:thử nghiệm stylez$ ./a.out
1 1CAAC

28 EAAEB5
F489AD95
CAAC

28 EAAEB5
F489AD95 F489AD95 EAAEB5
F489AD95 F489AD95e30ca8c0Dominiks-MacBook-Pro-2:thử nghiệm stylez$
Dominiks-MacBook-Pro-2:thử nghiệm stylez$ 28 EAAEB5
bash: 28: không tìm thấy lệnh
Dominiks-MacBook-Pro-2:thử nghiệm stylez$ F489AD95
bash: F489AD95: không tìm thấy lệnh
Dominiks-MacBook-Pro-2:thử nghiệm stylez$ CAAC
bash: CAAC: không tìm thấy lệnh
Dominiks-MacBook-Pro-2:thử nghiệm stylez$
Dominiks-MacBook-Pro-2:thử nghiệm stylez$ 28 EAAEB5
bash: 28: không tìm thấy lệnh
Dominiks-MacBook-Pro-2:thử nghiệm stylez$ F489AD95 F489AD95 EAAEB5
bash: F489AD95: không tìm thấy lệnh

Chỉnh sửa mã từ một anser (kiểm tra mã để xem nó hoạt động như thế nào)

#include 

int Consumer_line(void) {
int ch;
while ((ch = fgetc(stdin)) != '\n') && ch != EOF) {
;
}
trả lại ch;
}

int main(void)
{
int number_of_iterations = 1;
vòng tròn int = 0;

int cnt;
switch (scanf("%d", &number_of_iterations)) {
trường hợp 1: Consumer_line();
trường hợp 0: Consumer_line(); /* Quyết định xem có nên thử đọc lại mã không, v.v. */ break;
trường hợp EOF:
printf("hello");// Quyết định phải làm gì nếu xảy ra Lỗi cuối tệp hoặc Lỗi đầu vào cấp thấp hiếm gặp.
}

return 0;
}

câu trả lời hay nhất

Tôi muốn đọc toàn bộ đầu vào và sau đó bỏ qua phần còn lại.

không sử dụngquét(), thay vào đó hãy sử dụngfget() Hoàn thành tất cả đầu vào của người dùng và sau đó sử dụngsscanf(), strtol()Chờ phân tích.

Nếu bạn phải sử dụng quét(), vui lòng kiểm tra giá trị trả về của nó và sử dụng phần còn lại của dòng.

int Consumer_line(void) {
int ch;
while ((ch = fgetc(stdin)) != '\n' && ch != EOF) {
;
}
trả lại ch;
}


....
switch (scanf("%d", &number_of_iterations)) {
trường hợp 1: Consumer_line();
trường hợp 0: Consumer_line(); /* Quyết định xem có nên thử đọc lại mã không, v.v. */ break;
case EOF: // Quyết định phải làm gì nếu xảy ra Lỗi cuối tệp hoặc Lỗi đầu vào cấp thấp hiếm gặp.
}

Về c - làm thế nào để chấp nhận và đồng thời tắt tiếng đầu vào không mong muốn? (Đang quét), chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55033648/

32 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