




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1c语言语言(yyn)输入和输出输入和输出第一页,共21页。23.2 字符(z f)输入输出函数3.2.1 字符输出(shch)函数putchar() putchar()函数是向屏幕一个字符, 其调用(dioyng)格式为: putchar(ch); 其中ch为一个字符变量、字符常量或整型常量。 /* 本程序测试多种类型数据作putchar()函数参数的输出情况 */ #include main() char c=A; /* 定义字符变量并初始化 */ putchar(c); /* 输出变量C的值即字符A */ putchar(A); /* 输出字符A */ putchar(x41);
2、/* 输出字符A ,它以转义字符表示,十六进制 */ putchar(0 x41); /* 直接用ASCII码值输出字符A */ putchar(101); /* 输出字符A,它以转义字符表示,八进制 */ 第1页/共21页第二页,共21页。33.2.2 带缓冲区的字符(z f)输入函数getchar() getchar()函数的功能是从标准(biozhn)输入文件(通常是键盘,亦指磁盘文件)读取一字节代码(即一个字符),并回显。所谓回显,是指输入一个字符的同时又在屏幕上显示出该字符。这是标准(biozhn)C提供的字符输入函数,因此也是最常用的字符输入(尤其是键盘输入)函数。 键盘缓冲区(实
3、际上应该称作输入流即stdin 流)。所谓键盘缓冲区,是指在内存开辟的一片临时单元,用来暂时存放从键盘输入的字符。getchar()函数是带键盘缓冲区的输入函数,是指当从键盘输入字符时,这些字符先存放在键盘缓冲区,如果不敲回车键,getchar()函数并没有真正(zhnzhng)被执行(即所谓被激活);仅当回车键也被送入键盘缓冲区后,getchar()函数才从键盘缓冲区中读取一个字符。 第2页/共21页第三页,共21页。4强调以下(yxi)三点: (1) 调用getchar()函数(hnsh)输入字符时,必须用另一个变量(字符变量或整型变量)接收输入的字符。例如: ch = getchar()
4、; (2) 调用getchar()函数输入字符(z f)时,仅当敲入回车键后,函数才被激活。 (3) 调用该函数时,输入的每一个字符,包括空白符(即空格、制表符和回车符),都被送存到键盘缓冲区。第3页/共21页第四页,共21页。5 /* 本程序调用getchar()函数(hnsh)输入一个字符 */ #include main() char c; /* 定义字符变量 */ c = getchar(); /* 接收键盘输入的一个字符 */ putchar(c); /* 输出该字符 */ putchar(n); 第4页/共21页第五页,共21页。6 3.2.3 不带缓冲区的字符输入(shr)函数g
5、etch()和getche() 这是某些编译器,譬如Turbo C新增加的两个(lin )字符输入函数,这两个(lin )函数都是从键盘上读入一个字符。两者的区别是: getch()函数将读入的字符不回显在屏幕上, 而getche()函数却将读入的字符回显到显示屏幕上。第5页/共21页第六页,共21页。7 /* 本程序调用getchar()函数输入一个字符 */ #include main() char c, ch; c=getch(); /* 从键盘(jinpn)上读一字符不回显送给变量c */ putchar(c); /* 输出该字符*/ ch=getche();/* 从键盘(jinpn)
6、读一字符送给变量ch并回显 */ putchar(ch);/* 输出该字符*/ 第6页/共21页第七页,共21页。83.3 格式化输入(shr)和输出函数3.3.1 printf()函数(hnsh) 用于按指定格式向标准输出设备(屏幕(pngm)输出。有两种形式: printf(字符串); 例如,下面的语句: printf(How are you!n);是在屏幕上输出这样一行: How are you!这种形式的输出并没有指定输出格式。第7页/共21页第八页,共21页。9另一种(y zhn)形式是:printf(, ) “格式控制(kngzh)串”是由0个或多个格式转换说明组成的一个字符串序列
7、。格式转换说明的一般形式为: %flag width.prechlL输出格式符格式修饰符(见表3-2) 见表3-1 printf(“%d”, a); printf(%d%f, a,x); printf(a=%d, b=%d, a+b=%dn, a,b,a+b); printf(“a=%-d, x=%+8.2f, x+y=%Lfn, a,x,x+y); 左对齐 正数也要加正号 输出共占8位,其中小数占两位输出为long double型第8页/共21页第九页,共21页。103.3.2 scanf()函数(hnsh) scanf()函数的一般形式为: int scanf(,) “格式控制(kngzh
8、)串”是由0个或多个格式转换说明组成的一个字符串序列。格式转换说明的一般形式为: %*widthh/l/L输入格式符 格式修饰符(见表3-4) 见表3-3 格式转换说明的作用是引导对下一输入项进行转换。 “地址列表”中给出一个或多个输入项,输入项之间用逗号分隔。 从概念上讲,输入项的表示形式是指针,指向存储输入数据的变量。因此,输入项必须指明变量的地址。C语言提供了一个取变量地址的运算符“&”,只要将它作用在变量上,就能得到该变量的地址。例如,&a,&b分别表示变量a和变量b 的地址。第9页/共21页第十页,共21页。11 例如,若要为int变量a和b从键盘输入数据,如
9、果写作: scanf(%d%d, a,b);是不正确的。可用如下语句(yj)实现: scanf(%d%d, &a,&b); 如果将上述语句应改为: scanf(%d,%d, &a,&b);即在两个格式转换说明之间插入(ch r)一个逗号,输入数据时也必须输入一个逗号,如: 123,4567 要注意的是,不要(byo)轻易将“c”格式与其它格式混在一起用,以免出错。例如,设a为int型变量,ch是char型变量,对于语句: scanf(%d%c,&a,&ch);若输入为 29A /* 表示空格符 */其结果是将数值29送a,而将一个空格字符送ch。
10、 第10页/共21页第十一页,共21页。12 3.4 关于格式化输入和输出(shch)函数的进一步讨论 3.4.1 printf()和scanf()函数(hnsh)的返回值问题 若成功,printf()函数返回输出(shch)的字符个数,出错时返回负数。 /* 本程序测试printf()函数的返回值 */ #include main() int count; /* 定义count,用来接收返回值 */ float r1 = 12345.12345678, r2 = 123.123456789; count = printf(r1 = %fnr2 = %fn,r1,r2); printf(cou
11、nt=%dn,count);/* 输出printf()函数的返回值 */ 程序输出: r1 = 12345.123047 r2 = 123.123459 count=34 第11页/共21页第十二页,共21页。13 scanf()函数也具有返回值,所不同的是,scanf()函数执行成功时的返回值是成功读取的变量数;如果第一个输入项读入就出错(ch cu),则返回0。 /* 本程序(chngx)测试scanf()函数的返回值 */ #include int main() int count, a,b,c; count = scanf(“%d,%d,%d”, &a, &b, &am
12、p;c); printf(a=%d,b=%d,c=%dtcount=%dn,a, b, c,count); 执行上述程序(chngx),如果输入为: 123,1234,12345 则输出结果为: a=123,b=1234,c=12345 count=3第12页/共21页第十三页,共21页。143.4.2 printf()函数的p格式(g shi)符的应用 在printf()函数(hnsh)中,p格式符用来输出指针的值,即指针所指对象的首地址。利用p格式符的这一特性,我们可以了解变量的空间分配情况。下面来看一个例子。 /* 本程序测试变量的空间(kngjin)分配情况 */ #include i
13、nt main() int i,j,k; printf(&i=%p,&j=%p,&k=%pn, &i,&j,&k); 执行后的输出为(不同的系统环境可能输出值不同,下面是Turbo 2.0的一种输出): &i=650B:0FD6,&j=650B:0FD8,&k=650B:0FDA第13页/共21页第十四页,共21页。15 3.4.3 scanf()函数(hnsh)的“%”格式应用问题 /* 用“%”格式接收指定范围的字符 */ #include int main() int *ptr; /* 定义一个指针 */ scanf
14、(“%abcd”, ptr); printf(“ptr=%sn”,ptr); 设输入为: dabcaaagade 程序(chngx)输出为: ptr=dabcaaa第14页/共21页第十五页,共21页。16 /* 用“%”格式接收指定范围的字符 */ #include int main() int *ptr; /* 定义一个指针 */ scanf(“%bcd,”, ptr); printf(“%sn”,ptr); 设输入为: How are you,John! 程序(chngx)输出为: How are you 注:这是由于逗号作为(zuwi)不可接受字符,而作为(zuwi)字符串的定界符.第
15、15页/共21页第十六页,共21页。17/* 本程序(chngx)可接收任意字符串的输入 */ #include int main() int *ptr; /* 定义一个指针 */ scanf(“%n”, ptr); printf(“ptr=%sn”,ptr); 设输入为: How are you! 程序(chngx)输出为: How are you!第16页/共21页第十七页,共21页。18 3.4.4 scanf()函数应用中两个(lin )最常见的问题 1.空白符问题(wnt) /* 本程序测试格式转换说明%dn的应用(yngyng)情况 */ #include int main(void) int a; printf(Please input the data: ); scanf(“%dn”,&a); /* 注意这里加了一个换行符n */ printf(“%dn,a); 问题: 被要求输入两个数才能正常结束 原因: 程序要求输入空白符,而空白符是数据的定界符第17页/共21页第十八页,共21页。192标准(biozhn)输入流中残留字符问题 /* 本程序测试标准输入流中残留字符的情况 */ #include int main(void) int a; char c; scanf(%d,&a); /* 接收(jish
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司租车租赁合同范本(2025版)
- 二零二五年文化旅游景区设计策划代理服务协议
- 二零二五年度离婚诉讼案件律师代理服务协议
- 2025版金融财务报表保密协议示范文本
- 2025年智能机器人制造与应用合作协议
- 二零二五年度园林景观工程劳务分包安全管理协议
- 二零二五年度副总经理职位劳动合同样本
- 2025年度绿色生态养殖场家禽批量采购禽类购销合同
- 2025年度房地产项目委托开发与地产大数据分析服务合同
- 2025版企业应收账款融资合同示范文本
- 2024年公务员省考模拟考试及试题及答案
- 《资治通鉴》与为将之道知到课后答案智慧树章节测试答案2025年春武警指挥学院
- 浙江国企招聘2024杭州钱塘新区产业发展集团有限公司下属公司招聘13人笔试参考题库附带答案详解
- 港航疏浚事业部直属项目工程分包管理办法
- 路灯维修工考试题库单选题100道及答案
- 开题报告-中国特色社会主义教育学话语体系研究
- 成都市公安局锦江区分局招聘警务辅助人员真题
- 雨季施工安全注意事项
- DB32-T 4165-2021 多联式空调(热泵)系统工程技术规程
- 数据中心运维服务投标方案
- 疗愈人心的创业:90后打造“青年养老院”
评论
0/150
提交评论