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