繁体   English   中英

scanf c 编程语言的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM