以一个简单的程序为例:
输出输入字符的ASCII值
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
char x;
int y;
while (scanf("%c", &x)!=EOF)
{
y = x;
printf("%d\n", y);
}
return 0;
}
我们会发现,在输出的时候会有一个回车符的ASCII码值被连带输出:
(\n 回车的ASCII码为10)
为什么呢?
因为我们在输入字符后,scanf函数读取字符,运行程序,我们需要按一个回车,然后就有一个输出,但是此时的scanf函数也将回车符读入了,我们输出的时候会将回车符的ASCII码一起输出
那么在我们需要输入多组字符时如何解决scanf函数读取回车符的这个问题呢?
getchar():字符输入函数,没有参数,从输入缓冲区里面读取一个字符
它会将回车符读取,scanf函数就不会读取回车符到从而不影响函数的输出。