目录
〇、scanf()接收用户输入的流程
scanf()接收用户输入的流程为:
系统将用户输入内容被保存到缓冲区,然后scanf再从缓冲区里读取内容。scanf的第一个参数是从缓冲区里匹配要读取内容的格式,scanf在缓冲区里不断读取,直到匹配到和第一个参数相同的格式的字符串才会取出。
一、回车的缓冲区滞留问题是什么?
运行以下代码你会发现:明明是两个scanf却只能接收一个字符。
#include<stdio.h> int main() { char c; printf("请输入第一个字符:"); scanf("%c", &c); printf("请输入第二个字符:"); scanf("%c", &c); return 0; }
这就是scanf()的回车滞留问题,即scanf("%c")会吸收滞留在缓冲区的回车。