簡體   English   中英

Ascii轉換程序; 打印錯誤

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM