循环 2 自动输入

问题描述

我的代码表现得很奇怪。在循环 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 忽略空格。