我是c的新手,我不知道如何表达这个问题。但是,例如使用以下代码:
#include <stdio.h>
int main()
{
int x,y,z;
printf("Enter 2 numbers: ");
scanf("%d %d", &x, &y);
printf("Test: ");
scanf("%d",&z);
printf("x:%d y:%d z:%dn",x,y,z);
return 0;
}
如果用户输入"1 2 3",则设置x=1, y=2, z=3。我想知道你是否可以设置x=1和y=2,忽略3,然后用户可以输入另一个值,而不使用之前给出的3。
以下代码将为您提供帮助:
#include <stdio.h>
#include <stdlib.h>
int main() {
int x,y,z;
char s[1024];
printf("Enter 2 numbers: ");
scanf("%d %d", &x, &y);
fgets(s, 1024, stdin);
printf("Test: ");
scanf("%d",&z);
printf("x:%d y:%d z:%dn",x,y,z);
return 0;
}
用1024 bytes
初始化一个字符串指针,读入前两个整数后忽略该行剩余的内容,然后提示Test:
并读入z
变量。
EDIT使用下面的代码,因为我用0 <= lentgh <= 8.1k characaters
行测试了它!
#include <stdio.h>
#include <stdlib.h>
int main() {
int x,y,z;
char ch;
printf("Enter 2 numbers: ");
scanf("%d %d", &x, &y);
while(scanf("%c", &ch)) if(ch == 'n') break;
printf("Test: ");
scanf("%d",&z);
printf("x:%d y:%d z:%dn",x,y,z);
return 0;
}