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

c - Scanf while 循环影响循环外的下一个 scanf

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-04 03:09:03 27 4
mua khóa gpt4 Nike

我的测试输入是

[1,2,3]
[4,5,6]
[7,8,9]
[9,9]

或者它可以是单个 2d 坐标之前的任意数量的 3d 坐标,我的代码是

#include 
#include
#include
#include
#include


int chính(){
int x1;
int y1;
int z1;
int x2;
int y2;


while(scanf("[%d,%d,%d]\n", &x1,&y1,&z1) == 3){
printf("(x,y,z) ---> (%d,%d,%d)\n", x1,y1,z1);
}



scanf("[%d,%d]", &x2, &y2);
printf("(%d,%d)\n", x2, y2);

return 0;
}

如果我将 while 循环更改为三个单独的 scanfs 那么它工作正常,但问题是我不知道我需要多少个。无论如何要解决这个问题以便扫描 2d 坐标?

Bất kỳ trợ giúp nào đều được đánh giá cao

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

考虑使用 fget 来捕获输入。 sscanf 是一种解析输入的方法。
一个优点是输入可以被多次解析并且输入流被清除到尾随换行符。

#include 
#include
#include

int main ( void){
char line[256] = "";
int x1;
int y1;
int z1;
int x2;
int y2;

while( fgets ( line, sizeof line, stdin)) {
if ( 3 == sscanf ( line, "[%d,%d,%d]", &x1, &y1, &z1)) {
printf ( "(x,y,z) ---> (%d,%d,%d)\n", x1,y1,z1);
}
else if ( 2 == sscanf ( line, "[%d,%d]", &x2, &y2)) {
printf ( "(x,y) ---> (%d,%d)\n", x2, y2);
break;//exit the while loop
}
khác {
printf ( "input coordinates [x,y,z] or [x,y]\n");
printf ( "try again\n");
}
}

关于c - Scanf while 循环影响循环外的下一个 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462650/

27 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