[英]Ascii Conversion Program; printing error
我一直在用C編寫此程序,但我不明白為什么它打印超出了參數說明的范圍。 這是程序,有人可以幫我嗎? 另外,我如何獲得輸入以拒絕不在指定范圍內的數字? 提前致謝!
#include <stdlib.h>
#include <stdio.h>
#define LEN 64
int main(){
char line[LEN];
printf("Enter a #, 32-127: ");
fgets(line,LEN,stdin);
int i = atoi(line);
printf("Enter a #, %d-127: ",i);
fgets(line,LEN,stdin);
int j = atoi(line);
for(i;j;i++)
printf("ASCII value of character %d: %c\n",i,i);
return(EXIT_SUCCESS);
}
您的“ for”循環不正確。 相反,請嘗試如下操作:
while ( i <= j ) {
printf("ASCII value of character %d: %c\n",i,i);
i++;
}
要么
for ( int idx = i; idx <=j; idx++) {
printf("ASCII value of character %d: %c\n",idx,idx);
}
為了進行驗證,只需執行“ if”語句,然后將輸入值與您的驗證范圍進行比較即可。 留給你。
您需要清楚地了解此行在做什么:
for(i;j;i++)
在此處閱讀有關聲明的更多信息
for (initialization; condition; increment){
body
}
在您的代碼中, j
是您的condition
。 在C語言中 , zero == false
並且different from zero is true
。 因此, j
永遠不會為零,因此循環變成了無限循環。
試着多解釋一些您打算通過for語句實現的目標,以便我們更好地幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.