我是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:%d\n",x,y,z);
return 0;
}
如果用户输入“1 2 3”,则设置x = 1,y = 2和z = 3。我想知道你是否可以设置x = 1和y = 2并忽略3,那么用户可以输入另一个值而不使用之前给出的3。
答案 0 :(得分:0)
此代码可以帮助您:
#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:%d\n",x,y,z);
return 0;
}
它用1024 bytes
初始化一个字符串指针,在读完前两个整数后忽略该行的剩余内容,然后提示Test:
并读取z
变量。
编辑使用以下代码,因为我使用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:%d\n",x,y,z);
return 0;
}