欢迎来到天天文库
浏览记录
ID:6151321
大小:50.50 KB
页数:3页
时间:2018-01-04
《浅析c语言中scanf函数的常见错误及解决方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、scanf函数的隐性错误及解决方法金锐金锐(1973.12),女,研究生,讲师,计算机应用,陶斌,焦合军(河南工程学院计算机学院,河南郑州451191)摘要:C语言是大部分理、工科专业学生必修的一门基础课,scanf函数是C语言学习者在学习过程中遇到的一个常见函数。scanf函数的用法在各类C语言教材中都已详细讲解,但是学生还是经常出错,分析了问题产生的原因,重点阐述使用scanf函数过程中遇到的隐性错误及解决方法。关键词:scanf函数;隐性错误;解决方法TheimpliciterrorsofscanffunctionandsolutionsAb
2、stract:TheClanguageisabasiccurriculumforthemostscienceandengineeringstudents,scanffunctionisacommonfunctionofClanguagelearnersencounterintheprocessoflearning.TheusageofscanffunctioninalltypesofClanguageteachingmaterialsareexplainedindetail,butthestudentisoftenwrong,analyzethec
3、ausesoftheproblem,focusingontheuseofhiddenerrorsencounteredduringscanffunctionsandsolutions.Keywords:scanffunction;hiddenerrors;solution1序言计算机知识与应用能力是培养面向21世纪的高级专业人才极其重要的组成部分。教育部根据高等院校非计算机专业的计算机培养目标,提出了“计算机文化基础”、“计算机技术基础”和“计算机应用基础”三个层次教育的课程体系。为此,我校在大一新生中开设了《计算机基础》、《C语言程序设计》等计算
4、机课程。其中C语言是大部分理工科专业学生必修的一门计算机基础课。C语言属于高级语言,是面向过程的编程语言,只用标准C的库的话,无法编出图形界面,学生不能直接看到效果很好的图形用户界面,同时由于C语言语法比较灵活自由,导致编程稍有不慎就会出错,以及C语言中的很多算法和数据结构如果不加以理解而只是死记硬背的话是会非常枯燥且容易出错的,所以大部分学生在学习后的体会是:C语言非常难学,非常枯燥,学后感觉毫无所获,还是云里雾里;如何提高学生学习C语言的主动性,培养学生利用C语言解决实际问题的能力,是大多数C语言老师面对的一大难题。本文仅对学生学习C语言过程中
5、遇到的一个常用又容易出错的scanf函数的隐性错误进行剖析,并通过实例浅析对此类问题如何处理。scanf函数是学习C语言过程中遇到的一个常见函数,是应该熟练掌握的一个函数,但很多初学者不能很好的运用此函数,编程过程中错误的使用scanf函数,导致程序出错不能正常运行,这类错误常使学生不知所措,因为程序能编译成功,而输入原始数据却得不到正确的运行结果,出错原因主要有两种:一是输入的数据与scanf函数所要求的输入方法不一致;二是scanf函数中使用了与变量类型不匹配的格式字符。对于一些输入格式的错误,只要按照scanf函数格式细心检查,一般都能发现错
6、误的原因,所以遇到此类错误无需直接指出,让学生自己想办法解决,既提高了学生调试程序的能力,又巩固了课堂上所学的知识。下面主要介绍在使用scanf函数时遇到的一些隐性错误。2隐性错误及解决方法1)输入有空格的字符串charstr[20];scanf("%s",str);printf("%s",str);return0;我们看上边的程序段,输入HelloWorld!,输出Hello,并没有达到预期目的,原因是当scanf函数扫描到“Hello”后面的空格就认为对字符数组str的赋值结束,并忽略后面的“World!”。这里要注意是“World!”这个残存
7、信息是在stdin中,如果继续输入,scanf函数会扫描stdin流。可以改动上面的程序来验证一下。ANSIC标准向scanf函数添加了一种新特性,称为扫描集(scanset)。扫描集定义了一个字符集合,通过scanf函数读入允许的字符并赋给相应的字符数组。扫描集由一对方括号中的一串字符定义,左方括号前必须加上百分号(%[]),这个参数的意义是读入一个字符集合。[]是个集合的标志,因此%[]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合中的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字
8、符,既遇到"^"后面集合的字符便停止,注意此时读入的字符串是可以含有空格的[1]。可以试着把上边程序中的scanf语句改为
此文档下载收益归作者所有