下面的代碼不能按預期工作,有人可以給我一些建議嗎?for for語句中使用getchar()不能正常工作
#include <stdio.h>
int main(){
int i, k=0, j=0;
char hex[50], c;
for (i=0; (c=getchar()) != EOF && (c=getchar()) != '\n'; i++) {
hex[i] = c;
j++;
}
if (c == 'n') {
hex[i] = 'n';
i++;
}
hex[i] = '\0';
for (k=0; k<i; k++) {
printf("%c", hex[k]);
}
printf("\n%d %d %d\n", i, j, k);
return 0;
}
如果我輸入:
abc
我想輸出應該是:
abc
4 3 4
然而,在我的Xcode IDE輸出爲:
b
1 1 1
有人可以幫助我調試我的代碼?
你能告訴我爲什麼c的類型必須是int嗎?我將用十六進制[]來表示c值,這是char類型。 – user7241487
@ user7241487有必要與'EOF'進行比較。 'getchar'返回0..255和-1('EOF')。 255(''\ xFF''和'EOF')不應該混淆。 – BLUEPIXY
downvote的原因是什麼? – BLUEPIXY