scanf用法总结

来源:互联网 发布:福昕阅读器mac版 下载 编辑:程序博客网 时间:2024/04/30 12:50

scanf函数精髓:严格格式匹配。

常见的格式字符及说明:

格式字符

说明

%d

从键盘输入十进制整数

%o

从键盘输入八进制整数

%x

从键盘输入十六进制整数

%c

从键盘输入一个字符

%s

从键盘输入一个字符串

%f和%e

从键盘输入一个实数

1)  %d、%o、%x、%f、%e归为一类,因为输入的都是数。显然它们的组合都是0~9等数字,十六进制会多了a~f或A~F,%f和%e多了一个小数点。当scanf的格式说明符为这5个中的其中一个时,从键盘输入的组合只能是上面那些东东,一旦遇到其它的输入符号就终止。也就是说其它的符号可以当做终止符或间隔符(当有多个数据输入时)。

2)  %c,意为从键盘得到任一个字符,这下就好玩了,它除了能单个的接收数字、字母、小数点等字符外,还能接收制表符、空格、换行键(回车键)这三个通常被当做间隔符的字符。可以理解为通吃型(一次只能吃一个哦)。

3)  %s,意为从键盘得到一个字符串。那字符串什么时候结束呢?显然了,%s不能像%c那样通吃了,这时三个间隔符会恢复他们的正职,遇到他们也就意为着一个字符串结束了。

举例:

程序的本意是输入x的值后,输入另一个字符给a。结果是输入1后按回车就直接打印了结果。貌似程序不给我们输入a的机会,是这样吗?不是的。a已经接收了一个字符,就是刚才敲的换行键(回车)。不信可以打印出a的ASCII码看看:

第一个输入1后,按换行键(回车);第二个输入1后,按空格键,再按回车键;第三个输入1后,按Tab键,再按回车。

那么怎样给a输入值呢?常见的方法有三种:其中任选一种就行了,不同之处自己找吧。

scanf还有许多要注意的地方,总之“严格格式匹配”之精髓不能丢!

原创粉丝点击