putchar函数没有输出,想知道原因是什么

#include

int main( )
{
int c;

printf( "Enter a value :");
c = getchar();

printf( "\nYou entered: ");
putchar( c );
printf( "\n");
//为什么输入enter就结束了?
//putchar没有发挥作用
}

img


你输入的字符正确嘛?
int c 类型没有写错。
getchar 返回类型本来就是一个int 你写的没毛病
写成int 也很简单,要处理你输入的不是一个字符的情况

img

你如果直接按回车的话,c是接收了,但是打印的时候看不出来。
你得调试,然后再监视里看c的取值,你就可以看到\n

类型定义错误,getchar是对字符使用而你定义的是int型改为char c;

变量c的类型不对,int是整型,只能输入数字且有效数值在0-256,putchar是获取字符,所以没法输出字符,压根就没有存储到c中,或者说c中就没有字符。

换行符 '\n' 不会显式显示在屏幕上,实际是光标换入了下一行里,把putchar(c); 改为输出ASCII码值是可以看到的:printf( "%d\n",c);//putchar( c ); 会输出:10

getchar()函数是从标准输入流中读入一个字符,如果你输入回车,读入的字符是\n\n是不可见字符,putchar()打印\n字符就是让光标移到下一行行首。