該程序編譯正確,但是當我把一個32到127之間的數字(正確的範圍)它完成循環。任何人都可以告訴我一種方法,我可以在第一個while循環中寫入它,如果我輸入i(32-128)它繼續,並在((i + 1)-128)之間輸入j?Ascii轉換錯誤
#include <stdlib.h>
#include <stdio.h>
#define LEN 64
int main(){
char line[LEN];
int i=0;
int j=0;
while(i<32 | i>128) {
printf("Enter a #, 32-127: ");
fgets(line,LEN,stdin);
int i = atoi(line);
}
while(j<=i | j>128) {
printf("Enter a second #, %d-127: ",i);
fgets(line,LEN,stdin);
int j = atoi(line);
}
while(i<=j) {
printf("ASCII value of character %d: %c\n",i,i);
i++;
}
return(EXIT_SUCCESS);
}
請請使用fscanf而不是fgets和atoi! – goji
如果你想檢查輸入,請在*之後檢查輸入,而不是之前。 –
請勿使用按位運算符。 – SLaks