1、scanf()函数:
int scanf(const char *format, ...);
返回值:成功匹配的个数的参数个数(一个%s算一个)
【注】scanf输入字符串的时候且第一个格式化参数不是字符类型%c的时候,当空格、tab、\n位于最前面的时候,自动去除。同时多个数据同时输入的时候,以空格、tab、\n为分隔符。最后的\n继续保留在缓冲区。
【补充】如果scanf输入得到一个错误的字符,那么停止输入,且该字符保留在缓冲区中,给下一个输入函数。scanf返回正确匹配的参数个数。
【补充2】scanf函数读取到EOF的时候,返回-1。
【补充3】 scanf函数的第一个参数是%c的时候,会去读取缓冲区的\n 。而一般这不是期望的运行结果。导致其他参数不匹配,无法读取。
2、gets()函数:
char *gets(char *str);
从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。最后的\n不保存在缓冲区。
【注】gets 读取的内容可以包括 空格和\tab。
3、getchar():等价于getc(stdin)
int getchar(void);
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
【注】可以读取缓冲区的任何一个字符,包括\n \tab 空格。