网站大量收购闲置独家精品文档,联系QQ:2885784924

在C语言中输入输出常见错误.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在C语言中输入输出常见错误

在C语言中,输入输出函数有着相当重要的地位,它是我们的程序与用户交互的唯一途径,现在我就将C语言中比较常见的几个输入输出函数介绍给大家,以下这些讲解都是针对VC调试平台。 (一)?? 格式化输入输出函数 (1)scanf( )格式化输入函数 格式输入函数scanf( )函数,它的格式为scanf(“格式字符串”,输入列表)。“格式字符串”包含三种类型的字符:a、格式字符,以%开头的字符,用以说明输入列表的数据以何种类型及格式的形式输入。b、普通字符,要求在输入时必须原样一起输入的字符。C、空白字符(空格、跳格键、回车键)作为相邻两个数据的默认分隔符。 在scanf( )函数中有以下地方需要注意: [1]????? 在scanf()函数中的格式字符串不存在转义字符,所以:格式字符串中的字符除了格式字符外全部都要原样输入。 如: int a; scanf(“%d\n”,a);如果我们想把10赋值给a,就需要在键盘上输入的是: 10\n回车,才能把10赋值给a,这里\n已经不是转义字符,而是普通字符。 [2]????? 输入列表的变量如果是基本类型(即整型、实型、字符型)一定要使用取地址符(输入字符串到字符数组的情况除外),而且后必须是变量,不允许是常量或表达式。 如: int a,b; scanf(%d%d,a,b); 这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“a”指a在内存中的地址。 [3]????? 输入数据时,企图规定精度 float a; scanf(%.2f,a); 这样做是不合法的,输入数据时不能规定精度,这里要记住一个程序是不能控制操作它的人来输入数据的精度的。 [4]????? 输入数据的方式与要求不符 ???? scanf(%d%d,a,b); 输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4 输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。 scanf(%d,%d,a,b); C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4 此时不用逗号而用空格或其它字符是不对的。3? 4? 又如:scanf(a=%d,b=%d,a,b); 输入应如以下形式:a=3,b=4 [5]????? 输入字符的格式与要求不一致 在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。 scanf(%c%c%c,c1,c2,c3); 如输入a b c 字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。 [6]???? 使用格式字符”%c”录入单个字符时,空格和回车键等字符都会作为有效字符输入,所以需要注意fflush(stdin)的使用。 [7]????? 注意输入列表中的元素的个数要与格式字符串中的格式字符个数相同。 [8]????? 在输入长整形数据和双精度浮点数时,必须使用长度修饰符”l”。 [9]????? 不要在不该使用取地址符的地方使用取地址符。 如:char str[10]; Scanf(%c,str);这里不应该加取地址符。 ? (2)printf( )格式输出函数 格式输出函数printf( ),它的格式为printf(“格式字符串”,输出列表)。这里的格式字符串也包含三种类型的字符,但这里和scanf( )函数的字符稍有不同。这三种类型的字符分别是:a、格式字符,以%开头的字符,用以说明输出列表的数据以何种格式的形式输出。B、转义字符,提供特殊的格式化控制,由一个“\”和一个字符组成。反斜杠会使printf( )函数以特殊的方式解释一个字符。C、普通字符,除格式字符和转义字符外的其他字符。 在printf( )函数中有以下地方需要注意: [1]????? 输出列表由若干个输出项组成,输出项可以是常量、变量,也可以是表达式。 [2]????? 格式字符串中的格式字符要与后边输出列表中的元素类型一一对应。 如: ?????? float a=1.9999; ?????? printf(%d,a);最终的输出结果是一些乱码。 再如: ?????? int a=12; ?????? printf(%f,a);最终的输出结果是0.000000,这里没有进行类型转换。 但是,如果想把上面的整数a以浮点数的形式输出,必须进行强制类型转换。如: ?????? int a=12; ?????? printf(%f,(float)a);输出的结果是12.000000。 [3]????? 格式字符串中的格式字符的个数要与输出列表中的元素个数相同。 如:?????? int

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档