[英]Why doesn't my while loop abort after I enter 0?
char inputvalue=7;
char zerovalue=0;
while(inputvalue != zerovalue)
{
scanf (" %c",&inputvalue);
printf("%c\n",inputvalue);
}
輸入0后為什么我的while循環不中止?
謝謝您的回答。 問題b:如何解決此問題,使其能夠按預期工作?
char inputvalue[100]='48';
char zerovalue[100]='0';
while(inputvalue != zerovalue)
{
scanf (" %c",&inputvalue);
printf("%c\n",inputvalue);
}
更改
char zerovalue=0;
至
char zerovalue = '0'; // 0 != '0'
您輸入的字符“ 0”與整數0不同。
“ 0”位於ASCII字符集的中間。
請注意,此答案跟隨對問題的編輯(第二部分)
我不知道您為什么突然將char
聲明為char[100]
。
ASCII 0
是(char) 48
或(char) '0'
而不是 '48'
。
以下作品(並編譯)
#include <stdio.h>
int main()
{
char inputvalue = 0; //initialised to 0, just so no undefined behaviour can happen
char zerovalue = '0'; //this is ASCII '0' (== 48)
while(inputvalue != zerovalue)
{
scanf (" %c",&inputvalue);
printf("%c\n",inputvalue);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.