学scanf函数的时候,突然想到一个问题
为什么有些程序需要scanf函数接收从键盘输入的字符等,有些函数不需要呢? 为什么第七行printf函数不用跟一个scanf函数接收输入的英文 为什么这个函数需要scanf函数呢 getchar()就是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab) 因为scanf 遇到空格或者制表符之类的就停了,你觉得他适合去接收一个英文句子吗。打个比方~ 你要输入一个 i love fishc.com!
你觉得scanf能胜任吗~ 显然不能~他从i开始读,看到i后面是空格,然后他就把i存到变量里面~然后它就跑路了。。。
那为什么getchar() 可以,因为。。。getchar就不嫌弃什么空格啊 回车啊 制表符啊~ 照单全收。一个个收~ 功能不同 getchar是从stdin中接收一个字符,而scanf是根据变量类型来接收字符,比如%d,就只能来接收int变量,像I love fishc.com! 这种类型的“字符串”形式,可以用string头文件中的gets函数(注意,不能用scanf %s 的形式!) Charles未晞 发表于 2018-3-11 14:59
getchar()就是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)
感谢你
页:
[1]