问题描述
我的代码表现得很奇怪。在循环 1 中它运行良好,但在循环 2 中它会自动打印 ASCII 值 10。请帮忙!
#include<stdio.h>
int main(){
char c;
int loop =1;
do{
printf("\nLoop = %d\nWrite character of which you want to find acii values: ",loop);
scanf("%c",&c);
printf("\nASCII value of %c is %d.",c,c);
loop++;
}while(c != 'Z');
printf("\n******END*****");
return 0;
}
解决方法
10 是换行符的 ASCII。您正在阅读空格,您可以使用
来避免scanf(" %c",&c);
注意字符说明符前的附加空格。它指示 scanf 忽略空格。