putchar()的怪现象
最近开始重温C,出现“为什么这次就既能输出字母,也能输出数字?在其中也有PUTCHAR(102)的过程”,请看两次代码的不同/*
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
putchar(102); //输出字母f
system("pause");
return 0;
}
*/
//如果用while连续输出,其中也有7,那将怎样呢
#include<stdio.h>
#include<stdlib.h>
#define MAX 50
int main(void)
{
char ch;
while((ch=getchar())!='#')
putchar(ch); //为什么这次就既能输出字母,也能输出数字?在其中也有PUTCHAR(102)的过程
system("pause");
return 0;
}
// 开始思考:getchar()是一个行缓冲函数,而while语句表明每次都PUTCHAR(一个字符),
//那么他应该输出的是ASCII码中对应的字母, 难道缓冲只原样输出?