[英]problem with scanf c programming language
所以我用c语言制作了这个程序,它假设使用scanf接受2个输入,如果输入的字符部分是特定字符,则该字符的计数器增加。 但是,当我运行它时,程序在我向 scanf 输入输入 2 次后终止,它直接进入 while 循环外的 printf 语句,i 值打印为 1,k 值打印为 0。我不允许使用除 scanf 以外的任何其他东西。 有人可以帮忙吗? 谢谢
#include <stdio.h>
typedef struct {
double x;
} se_t;
typedef struct {
double x;
} ce_t;
int
main(int agrc, char *agrv[]){
ce_t ce[43];
se_t se[43];
double a=0;
int i=0, k=0;
char check;
while ((scanf("%c %lf",&check,&a)==2)){
if (check=='a'){
ce[i].x=a;
i++;
}
else if (check=='b'){
se[k].x=a;
k++;
}
}
printf("%d\n",i);
printf("%d\n",k);
return 0;
}
while ((scanf(" %c %lf",&check,&a)==2)){
/* ^ add a space */
尝试在scanf
%c
之前放置一个空格。 由于'\\n'
将保留在stdin
,然后在下一次迭代中,它可能会导致scanf
在遇到'\\n'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.