在C语言中输入输出常见的错误.doc_第1页
在C语言中输入输出常见的错误.doc_第2页
在C语言中输入输出常见的错误.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在C语言中,输入输出函数有着相当重要的地位,它是我们的程序与用户交互的唯一途径,现在我就将C语言中比较常见的几个输入输出函数介绍给大家,以下这些讲解都是针对VC调试平台。(一) 格式化输入输出函数(1)scanf( )格式化输入函数格式输入函数scanf( )函数,它的格式为scanf(“格式字符串”,输入列表)。“格式字符串”包含三种类型的字符:a、格式字符,以%开头的字符,用以说明输入列表的数据以何种类型及格式的形式输入。b、普通字符,要求在输入时必须原样一起输入的字符。C、空白字符(空格、跳格键、回车键)作为相邻两个数据的默认分隔符。在scanf( )函数中有以下地方需要注意:1 在scanf()函数中的格式字符串不存在转义字符,所以:格式字符串中的字符除了格式字符外全部都要原样输入。如:int a;scanf(“%dn”,&a);如果我们想把10赋值给a,就需要在键盘上输入的是:10n回车,才能把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=45 输入字符的格式与要求不一致在用“%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 str10;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 a=12; printf(%d, %d,a);将在屏幕上输出一个12以及一个乱码。4 在以.nf这样的格式进行输出浮点数时,有四舍五入。如:float a=1.9999;printf(“%.2f”,a);最终的输出结果是2.00。5 长度修饰符“l”在输出长整形数据时可不要,因为在VC中,long和int占用的字节长度都是4,所有可以不加上“l”。6 格式符nd中,n表示一个十进制整数输出时在屏幕上占n个字符的宽度,如果n前面是号,则表示输出的整数右对齐,那么输出的整数左边补空格;如果n前面是号,则表示输出的整数左对齐,输出的整数右边补空格。7 在-128127之间的整数可以以字符的格式输出,字符也可以以整型的格式输出。如: int a=97; printf(%c,a);输出的结果是a,因为a存储在内存中是以ASCII码的形式存储的。再如:char a=a;printf(%d,a);输出的结果是97,原因同上。(二) 单字符输入、输出函数C语言提供了两个无格式控制的,专门用于输入、输出单个字符的函数getchar( )和putchar( )。(1) 单字符输入函数getchar( )1 getchar( )函数没有参数,有返回值,返回的就是输入的那个字符。2 getchar( )函数一次只能接收一个字符。3 getchar( )函数同样将空格和回车键等字符都会作为有效字符输入,所以注意和fflush(stdin)函数的结合使用。(2) 单字符输出函数putchar( )1 putchar()函数有参数,无返回值。参数就是它要输出的那个字符,可以是字符变量或着字符常量2 putchar()函数一次向显示器输出一个字符。(三) 字符串输入、输出函数C语言还提供了两个无格式控制的专门对字符串处理的函数,gets( )和puts( )。(1) gets( )用来接收用户输入的字符串,这是个有参数的函数,参数是一个字符数组类型,输入的字符串通过传址的方式传到这个字符数组中。(2) puts()用来向用户显示一个字符串,它需要一个字符串参数,显示该参数并自动换行。如:puts(“hello, world.”);与printf(“hello,world.n”);的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论