我是C语言的新手,很抱歉,如果我的问题很简单,我已经在搜索它,但没有找到任何东西。
我需要使用scanf输入四个变量
scanf("%c %d %d %d", &v1, &v2, &v3, &v4)
第一个变量可以采用两个值'c'和'q'
当我输入c然后输入其他变量时,它将进行一些计算,但是当我要退出时,我仅应输入'q'而不输入其余的变量,但是scanf在输入其余变量之前不会前进变量
总有办法解决它,我不确定是否可以使用scanf,但是如果还有其他功能,那么我不介意使用它
答案 0 :(得分:2)
“总有办法解决”
使用fgets()
...
char buf[100];
if (fgets(buf, sizeof buf, stdin)) {
..然后对其进行扫描
char v1;
int v2,v2,v3;
int cnt = sscanf(buf, "%c %d %d %d", &v1, &v2, &v3, &v4);
if (cnt >= 1 && v1 == 'q') Quit();
else if (cnt == 4 && v1 == 'c') Do_stuff(v2,v3,v4);
else puts("Bad input");
答案 1 :(得分:1)
您应该为此使用多个scanfs。例如
scanf("%c", &v1);
if(v1 == 'c'){
scanf("%d %d %d",&v2, &v3, &v4);
/*some staff*/
}
else{
/*another staff*/
}