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

买了个域名 如何建网站小说关键词自动生成器

买了个域名 如何建网站,小说关键词自动生成器,宿松网站建设公司,新闻网站怎么做1. 返回整数的getchar函数 #include <stdio.h>main() {char c;while((c getchar()) ! EOF){putchar(c);} } 上述函数是错误的&#xff0c;原因在于程序中的变量c被声明为char类型&#xff0c;而不是int类型&#xff0c;这意味着c无法容下所有可能的字符&#xff0c;特…

1. 返回整数的getchar函数

#include <stdio.h>main()
{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.h>main()
{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.tj-hxxt.cn/news/50887.html

相关文章:

  • 在哪制作一个简单的网页北京seo怎么优化
  • 自己做的网站搜索不到二十条优化疫情措施
  • 乐搜做网站关键词优化的发展趋势
  • wood怎么做网站结构图百度电话查询
  • 自助餐火锅网站建设百度seo最新算法
  • 成都公司做网站合肥做网站推广
  • 做网站的公司推荐精准ip地址查询工具
  • 外贸开发网站建设必应搜索引擎网站
  • 网站公安备案信息代码怎么获取营销网站有哪些
  • 做好的网站怎么优化想学网络营销怎么学
  • 做网站需要几个服务器微信管理软件哪个最好
  • 为企网站友链交易平台
  • 网站优化设计方案怎么做google搜索引擎入口 镜像
  • 一般做个网站多少做网站多少钱网上销售平台
  • 做养生的网站多吗百度pc网页版登录入口
  • 平湖城乡规划建设局网站在百度上怎么打广告
  • 网站建设相关资讯2020十大网络热词
  • 网站效果图用什么软件做seo核心技术排名
  • 服装网站建设公司好吗注册域名在哪里注册
  • 网站平台维护不限次数观看视频的app
  • 做照片有那些网站优秀网页设计作品
  • 烟台html5网站建设网站推广的基本方法有哪些
  • 网站建设销售好做吗国际新闻最新
  • 做外文翻译的网站关联词有哪些关系
  • 新疆电子商务平台网站开发网络营销方案怎么写
  • 铭万网站建设哈尔滨网站推广
  • html5响应式网站psd国内新闻大事20条
  • 那家b2c网站建设报价关键词优化流程
  • 互联网保险与传统保险的区别seo网站免费优化软件
  • 今日最新网页游戏开服表seo网站推广主要目的不包括