关于C语言中输入输出函数的类型转换.docVIP

关于C语言中输入输出函数的类型转换.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于C语言中输入输出函数的类型转换

关于C语言中输入输出函数类型转换的实验和结论 实验一: #include stdio.h int main() { double d; scanf(%f,d); printf(%f\n,d); scanf(%lf,d); printf(%f\n,d); return 0; } 输入都是1 输出为:-92559604281615349000000000000000000000000000000000000000000000.000000 1.000000 (double类型的对应输入要使用lf才能正常录入。输出的时候,double和float均可使用%f正常输出。) 实验二: #include stdio.h int main(){ ??? float f; ??? double d; ??? scanf(%f,f); ??? scanf(%lf,d); ??? printf(%f\n,f); ??? printf(%f\n,d); ??? return 0 ; } 输入都是1 输出都是1.000000、 实验三: #include stdio.h int main(){ ??? double d; ??? scanf(%f,d); ??? printf(%f\n,d); ??? printf(%f\n,float(d)); ??? printf(%f\n,*(float*)d); ??? return 0 ; } 输入1, 输出分别为 -92559604281615349000000000000000000000000000000000000000000000.000000 -92559604281615349000000000000000000000000000000000000000000000.000000 1.000000 对变量进行强制类型转换不可,对变量指针转换却可以。 传给scanf 的都是变量的地址,我们当然就要用不同的格式字符串来区分了。#include stdio.h int main() { short a; unsigned b; int c; a=32767; printf(%d\n,a); b=-100; printf(%u\n,b); c=c; printf(%d\n,c); return 0; } 输出:32767 4294967196 99 当a=32798时,输出为-32738 a=62798,输出为-2738 a=92798,输出为27262 5. #include stdio.h int main() { int a,b,c; a=getchar(); b=getchar(); c=getchar(); printf(a=%db=%d\n,a,b,c); printf(a=%db=%cc=%c\n,a,b,c); return 0; } 输出结果a=49b=10c=97 a=1b= c=a 其中的enter也被当作了字符输入。!!!能帮我打印个东西不? getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.#include stdio.h int main() { int a,b,c,d,av; printf(Input a,b,c,d:); scanf(%d,%d,%d,%d,a,b,c,d); av=(a+b+c+d)/4.0; /*类型转换*/ printf(av=%f\n,av); return 0; } 不管输入为何,输出都是0.000000 当把%f改为%d时,输出正常,为整数 阅 读了 scanf/printf 的手册 (man 3 printf),似乎可以这样来理解其转处理机制:scanf 中类型转换符是给 scanf 函数指出那个相应的输入指针的类型,%d 是 int *, %c 是 char *, %x 是 unsigned int *,%f 是 float *, %lf 是 double *;而 prin

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档