当前位置: 首页 > news >正文

四川省住房建设厅官方网站英德市住房和城乡建设局网站

四川省住房建设厅官方网站,英德市住房和城乡建设局网站,家具网站开发报告,苏州制作网站的公司哪家好1. 返回整数的getchar函数 #include stdio.hmain() {char c;while((c getchar()) ! EOF){putchar(c);} } 上述函数是错误的#xff0c;原因在于程序中的变量c被声明为char类型#xff0c;而不是int类型#xff0c;这意味着c无法容下所有可能的字符#xff0c;特…1. 返回整数的getchar函数 #include stdio.hmain() {char c;while((c getchar()) ! EOF){putchar(c);} } 上述函数是错误的原因在于程序中的变量c被声明为char类型而不是int类型这意味着c无法容下所有可能的字符特别地可能无法容下EOF。最终的结果可能有 某些合法的输入在截断后与EOF相同程序将在文件复制的中途终止另一种可能是c根本无法取到EOF这个值程序陷入一个死循环部分编译器对上述实现并不正确虽然getchar返回结果赋值给char类型变量时会发生截断但是while中比较了getchar返回值和EOF 2. 更新顺序文件 为了保持与过去不能同时进行读写操作的程序的向下兼容性一个输入操作不能随后直接紧跟一个输出操作反之亦然。如果要同时进行输入和输出操作必须在其中插入fseek函数的调用。 while(fread(fread((char*)rec, sizeof(rec), 1, fp)) 1) {//对rec执行某些操作if(/*rec必须被重新写入*/){fseek(fp, -(long)sizeof(rec), 1);fwrite((char *)rec, sizeof(rec), 1, fp);fseek(fp, 0L, 1);//虽然看上去什么也没做但它改变了文件的状态使得可以正常读写} } 3. 缓冲输出与内存分配 当一个程序生成输出时是否有必要将输出立即展示给用户 程序输出有两种方式 即时处理方式往往造成较高的系统负担先暂存起来然后在大块写入的方式 这种控制能力一般时通过库函数setbuf实现的当buf时一个大小适当的字符数组那么修改语句如下 setbuf(stdout, buf); 语句将通知输入输出库所有写入到stdout到输出都应该使用buf作为输出缓冲区直到buf缓冲区被填满或者程序员直接调用fflush。 以下程序是错误的 include stdio.hmain() {int c;char buf[BUFSIZ]setbuf(stdout, buf);while((c getchar()) ! EOF)putchar(c); } 原因在于buf缓冲区最后一次被清空是在main函数结束之后作为程序交回控制给操作系统之前C运行时库所必须的清理工作的一部分但是在此之前buf字符数组已经被释放了。要避免这种类型的错误有两种办法 让缓冲数组称为静态数组可以直接显式声明buf为静态static char buf[BUFSIZ];也可以把buf声明完全移到main函数之外第二种办法是动态分配缓冲区在程序中并主动释放分配的缓冲区如下 char *malloc(); setbuf(stdout, malloc(BUFSIZ)); 此时也不用考虑malloc失败的情况因为malloc分配失败时返回NULL此时经过setbuf即标准输出不需要进行缓冲程序仍然能够工作只不过速度比较慢而已。 4. 使用errno检测错误 要进行错误处理这样的写法是错误的 /*调用库函数*/ if (errno)/*处理错误*/ 出错原因在于并没有强制要求库函数一定要设置errno为0这样errno的值可能是前一个执行失败的库函数设置的值。 这样写也是错误的 errno 0; /*调用库函数*/ if (errno)/*处理错误*/ 原因在于库函数调用成功时既没有强制要求对errno清零但同时也没有禁止设置设置errno比如fopen每次新建一个事先并不存在的文件时即使没有任何程序错误发生errno也仍然可能被设置。 因此正确的做法是应该首先检测作为错误提示的返回值确定程序执行失败然后在检查errno /*调用库函数*/ if (返回的错误值)检查errno
http://www.dnsts.com.cn/news/23677.html

相关文章:

  • html5网站提示wordpress 药品食品
  • 网站项目在哪接网站建设中存在的问题
  • 免费开通网站seo网络推广培训班
  • 网站怎么做交易平台姑苏网站建设
  • 建设网站大概需要多少钱WordPress加载语言包
  • 4399页游网站网站建设进展推进表
  • 网站建设与管理名词解释网站框架
  • 建设一个手机网站需要多少钱高端网站设计制
  • 网站在哪里搜索软件开发文档工具
  • 自媒体网站建设要求youku网站开发技术
  • 网站建设制作免费智慧团建登录app
  • 网站自定义title设计网站推荐 猪
  • 织梦网站 防黑营销方式有哪几种
  • 西宁建设厅人事局网站渭南做网站哪家好
  • 做网咖的网站wordpress显示目录结构
  • 营销网站建设的步骤过程宁波自助建站网站
  • 哈尔滨专业网站营销网站开发培训哪个好
  • 导航网站教程东莞seo网站建设公司
  • html5自适应手机网站模板免费公司宣传视频制作软件
  • 做效果图网站霸县网站建设
  • 青岛市住房和城乡建设局官方网站陇南建设网站
  • 蓝彩网络科技_齐齐哈尔微信营销_齐齐哈尔网站建设赣县人才网招聘信息网
  • 外包加工网收费网站优化前景
  • 大同网站建设哪里好宽带网络哪家好
  • WordPress创建的网站南开做网站的公司
  • 网站的建设与维护工资重庆市工程建设招标投标交易信息网
  • 免费的个人网站平台莆田网站建设维护
  • 建网站啦怎么制作平台网站
  • 做视频网站需要哪些技术指标昌吉州建设局网站
  • 威海建设公司网站房产销售网站设计