[转载]谈谈scanf函数的几个使用技巧
来源:互联网 发布:数据库管理员薪资 编辑:程序博客网 时间:2024/05/16 19:45
今天主要谈三个问题:
一. scanf函数输入格式中的字符串
scanf函数输入格式中也可以含有普通字符串,但他的含义是这些字符必须在输入中出现,例如:
他的含义是首先要求输入一个hello字符串,然后再输入一个十进制数。注意在等待输入时忽略hello与要输入的数之间的空格,制表符,回车。因此这两种输入都是正确的:
hello 1234
hello1234
二.scanf函数的返回值
看到一个学弟写的程序:
这个程序是没错,不过如果有人要存心捣乱,输入时不是输入数字,而是其他的什么字符,那么congratulations,这个程序崩溃掉了。 (^@^)
如何防止出现这种情况,有人通过把数字先读入到数组中,再判断读取的是不是一个数字.........作法真的好繁。
如果知道scanf函数的返回值的话,这个问题就好办多了。scanf函数执行成功时的返回值为成功读取的变量数,如果第一个变量的读取既告失败则返回值为0。
哈哈哈,我们可以通过判断scanf函数执行的返回值,可以制止用户不正确地输入,从而控制程序的流程。
把上面的程序改改:
一切OK!
三.scanf函数中一个参数的应用
在scanf函数中,我们可以使用 %c来读取一个字符,使用 %s 读取一个字符串。但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此我们只能读取一个单词,而不是整行字符串。因此一般使用gets来读取一个字符串。
其实scanf函数也可完成这样的功能,而且还更强大。
这里主要介绍一个参数:%[ ] 。这个参数的意义是读入一个字符集合。 [ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在“^”后面集合的字符,即遇到“^”后面集合的字符便停止。注意此时读入的字符串是可以含有空格的。
Eg. 输入一个字符串,这个字符串只含有小写字符。遇到第一个不是小写字符时停止。
scanf("%[a-z],str);
Eg. 想输入一个字符串, 遇到“.”停止,可设计如下:
scanf("%[^.]", str);
使用这个参数,你可以完成许多强大的功能呦!一切OK!
本文转自:http://www.host01.com/article/software/cc/20060917233214329.htm,原作者:hyqryq,有删改。
- [转载]谈谈scanf函数的几个使用技巧
- scanf()函数的几个常见问题
- scanf函数的使用
- scanf 函数的使用
- 使用Winedt的几个小技巧(转载)
- scanf()函数的使用
- scanf函数的基本使用
- scanf函数(转载)
- scanf的正确使用及技巧
- [转载]关于VC工程的几个技巧
- 【转载】python 提高效率的几个小技巧
- 谈谈C语言中的scanf()输入函数
- scanf()函数用法小结(转载)
- 【转载】《C Primer Plus》: 利用scanf()函数的返回值
- 使用scanf函数遇到的问题
- 02-scanf函数的基本使用
- C 【printf 和 scanf 函数的使用】
- c++ 中scanf函数的使用
- 关于rand()和srand()(转)
- Java中的时间问题
- 思念(五首)
- 标准中的政治技术学
- 工厂模式_酒店管理guoyz_1原创
- [转载]谈谈scanf函数的几个使用技巧
- Oracle常用SQL语句(PL/SQL developer工具下的)
- 稀疏矩阵乘法【未写完】
- 对frameset、frame、iframe的js操作
- IE的PNG黑边及字体锯齿
- 加油
- 软件人加油站 -
- Windows Via C/C++:用户模式下的线程同步——Cache行
- 左线性文法标示符识别的c++实现