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

北京企业官网网站建设哪家好广告策划公司

北京企业官网网站建设哪家好,广告策划公司,微信_网站提成方案点做,ssm实战项目网站开发一、fopen() FILE * fopen(const char * path, const char * mode); 参数 参数1:打开的文件路径及文件名称参数2:文件打开的方式 返回值 打开成功:返回文件指针打开失败:返回NULL。并把错误代码存在 error 中。 文件打开方式 r 以…

一、fopen()

FILE * fopen(const char * path, const char * mode);

参数

  • 参数1:打开的文件路径及文件名称
  • 参数2:文件打开的方式

返回值

  • 打开成功:返回文件指针
  • 打开失败:返回NULL。并把错误代码存在 error 中。

文件打开方式

r

以只读方式打开文件(若文件不存在打开失败)
r+以可读可写的方式打开文件(若文件不存在打开失败)
w以只写的方式打开文件。若文件存在则清空文件内容。若文件不存在则创建文件
w+以可读可写的方式打开文件。若文件存在则清空文件内容。若文件不存在则创建文件
a以附加的方式打开文件,只可写。若文件存在则写入的数据附加在源文件内容后面。若文件不存在则创建文件
a+以附加的方式打开可读可写文件

二、fclose()

int fclose( FILE *fp );

参数

  • 文件指针

返回值

  • 如果流关闭成功: 返回 0,
  • 如果流关闭失败:否则返回EOF(-1)

注意事项

  • 如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF
  • 文件关闭之后,文件光标移动到文件最前面

三、feof()

int feof(FILE *stream);

功能

  • 判断文件流是否到达文件尾部

返回值

  • 文件达到文件尾:返回非0值
  • 文件没达到文件尾:否则返回0。

注意

  • 文件结束符只能被clearerr()清除
#include<stdio.h>
int main(void)
{FILE *streamfopen("DUMMY.FIL", "r");fgetc(stream);if(feof(stream))printf("We have reached the end of file\n");fclose(stream);return 0;
}

四、ferror()

int ferror(FILE *stream);

功能

  • 判断文件是否出错

返回值

  • 未出错:如果ferror返回值为0(假)
  • 出错:返回一个非零值

注意

  • 对同一个文件每一次调用输入输出函数,均产生一个新的ferror函数值。因此,应当在调用一个输入输出函数后立即检查ferror函数的值,否则信息会丢失
  • 在执行fopen函数时,ferror函数的初始值自动置为0
#include<stdio.h>
int main(void)
{FILE*stream=fopen("DUMMY.FIL","w");(void)getc(stream);if(ferror(stream))/*testforanerroronthestream*/{printf("ErrorreadingfromDUMMY.FIL\n");clearerr(stream);}fclose(stream);return0;
}

五、rewind()

void rewind(FILE *stream);

功能

  • 将文件内部的位置指针(光标)重新指向一个流(数据流/文件)的开头

注意

  • 对同一个文件每一次调用输入输出函数,均产生一个新的ferror函数值。因此,应当在调用一个输入输出函数后立即检查ferror函数的值,否则信息会丢失
  • 在执行fopen函数时,ferror函数的初始值自动置为0
#include <stdio.h>
int main(void)
{FILE *fp=NULL;if(fp=fopen("1.txt,"r+")){fseek(fp,0,SEEK_END);printf("文件偏移:%d",ftell(fp));}rewind(fp);close(fp);return 0;
}

五、ftell()

long ftell(FILE *stream);

功能

  • 用于得到文件当前指针位置相对于文件首的偏移字节数

返回值

  • 返回当前文件指针相对于文件首的位移,位移为字节数

注意

  • 因为ftell返回long型,根据long型的取值范围-231~231-1(-2147483648~2147483647),故对大于2.1G的文件进行操作时出错

六、fseek()

int fseek(FILE *stream, long offset, int fromwhere);

功能

  • 把当前的文件流指针指定到指定的位置处

返回值

  • 如果执行成功:函数返回0
  • 如果执行失败:函数返回一个非0值

参数

  • 参数1:文件指针
  • 参数2:偏移量。正数表示正向偏移,负数表示负向偏移
  • 参数3:设定从文件的哪里开始偏移

参数3的取值

  • SEEK_SET: 文件开头(0)
  • SEEK_CUR: 当前位置(1)
  • SEEK_END: 文件结尾(2)
fseek(fp,100L,0); //把文件指针移动到离文件开头100字节处;
fseek(fp,100L,1); //把文件指针移动到离文件当前位置100字节处
fseek(fp,-100L,2); //把文件指针退回到离文件结尾100字节处

七、fgetpos()、fsetpos()

  • fseek和ftell所能操作的文件大小为long类型范围之类的,不能操作大文件。下面这两个函数就可以对大文件进行操作

fpos_t文件定位类型

  • 不是基本类型
  • fpos_t类型的对象可以在文件中指定一个位置
  • fpos_t定义的变量值以内部格式存储。仅由fgetpos和fsetpos使用
int fgetpos(FILE * restrict stream,fpos_t * restrict pos);

功能

  • 获得当前文件指针所处的位置,并把这个位置保存在参数2的pos变量中

参数

  • 参数1:文件流
  • 参数2:fpos_t类型的指针

返回值

  • 成功:返回0
  • 失败:返回一个非零值
 int fsetpos(FILE *stream, const fpos_t *pos);

功能

  • 将文件指针定位在pos指定的位置上

参数

  • 参数1:文件流
  • 参数2:fpos_t类型的指针

返回值

  • 成功:返回0
  • 失败:返回一个非零值
#include <stdlib.h>
#include <stdio.h>
void showpos(FILE *stream);
int main(void)
{FILE *stream;fpos_t filepos;stream = fopen("DUMMY.FIL", "w+");fgetpos(stream, &filepos);fprintf(stream, "This is a test");showpos(stream);if (fsetpos(stream, &filepos) == 0)showpos(stream);else{fprintf(stderr, "Error setting file pointer.\n");exit(1);}fclose(stream);return 0;
}
void showpos(FILE *stream)
{fpos_t pos;fgetpos(stream, &pos);printf("File position: %ld\n", pos);
}

八、fflush()

int fflush(FILE *stream);

功能

  • 会强迫将缓冲区内的数据写回参数stream指定的文件中
  • 如果参数stream为NULL,fflush()会将所有打开的文件数据更新

返回值

  • 如果成功刷新:返回0。指定的流没有缓冲区或者只读打开时也返回0值
  • 错误:返回EOF

注意

  • 如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数
printf("please enter:");
fflush(stdout);  //将缓冲区的数据都刷新到标准输出stdout中
ssize_t _s = read(0,buf,sizeof(buf)-1);

九、setvbuf()

int setvbuf(FILE *stream, char *buf, int type, unsigned size);

功能

  • 设置文件的缓冲区

参数

  • 参数1:处理的流指针
  • 参数2:待使用的存储区。可以为NULL(如果未NULL该函数会自动分配一个缓冲区)
  • 参数3:期望缓冲区的类型
  • 参数4:缓冲区内字节的数量

参数3的取值

  • _IOFBF(满缓冲):完全缓冲(在缓冲区满时才刷新)
  • _IOLBF(行缓冲):行缓冲(缓冲区慢时,或者向缓冲区写入一个换行符时刷新缓冲区)
  • _IONBF(无缓冲):无缓冲(没有缓冲区,直接从流中读入/写入数据)

返回值

  • 设置成功:返回0
  • 设置失败:返回非0值

注意

  • 打开文件之后且未对流进行其它操作之前调该函数
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{FILE *fp_src;char buffer[128],buff[10];int i;f((fp_src=fopen(argv[1],"r+"))== NULL){exit(EXIT_FAILURE);}setvbuf(fp_src,buffer,_IOLBF,128); //设置行缓冲区do{memset(buff,'\0',10);i = fread(buff,1,10,fp_src);}while(i==10);fclose(fp_src);
}
int main(int argc, char *argv[])
{FILE *fp_src;f((fp_src=fopen(argv[1],"r+"))== NULL){exit(EXIT_FAILURE);}setvbuf(fp_src,NULL,_IONBF,128); //设置无缓冲区fclose(fp_src);
}

 


文章转载自:
http://zootomy.fznj.cn
http://behring.fznj.cn
http://rivel.fznj.cn
http://claudicant.fznj.cn
http://cribellum.fznj.cn
http://gymnogenous.fznj.cn
http://unneurotic.fznj.cn
http://anachronous.fznj.cn
http://verruca.fznj.cn
http://lunular.fznj.cn
http://induce.fznj.cn
http://vegetate.fznj.cn
http://polyhedrical.fznj.cn
http://unpin.fznj.cn
http://beer.fznj.cn
http://isometric.fznj.cn
http://speckle.fznj.cn
http://vimen.fznj.cn
http://coo.fznj.cn
http://deoxyribonuclease.fznj.cn
http://motile.fznj.cn
http://akashi.fznj.cn
http://parachute.fznj.cn
http://glaucoma.fznj.cn
http://somnivolency.fznj.cn
http://caribe.fznj.cn
http://defecation.fznj.cn
http://mechanochemistry.fznj.cn
http://tod.fznj.cn
http://mailcatcher.fznj.cn
http://bregma.fznj.cn
http://quickassets.fznj.cn
http://margery.fznj.cn
http://nailsick.fznj.cn
http://caliper.fznj.cn
http://larvicide.fznj.cn
http://superpotent.fznj.cn
http://carbamate.fznj.cn
http://nutrient.fznj.cn
http://clastic.fznj.cn
http://dale.fznj.cn
http://nephropexia.fznj.cn
http://boating.fznj.cn
http://gleesome.fznj.cn
http://matriculate.fznj.cn
http://consonance.fznj.cn
http://louvered.fznj.cn
http://gladdest.fznj.cn
http://grappa.fznj.cn
http://sagacity.fznj.cn
http://extemporization.fznj.cn
http://obtrusion.fznj.cn
http://eva.fznj.cn
http://solidarity.fznj.cn
http://aureus.fznj.cn
http://rodent.fznj.cn
http://bullion.fznj.cn
http://variocoupler.fznj.cn
http://choir.fznj.cn
http://sustentation.fznj.cn
http://hydroacoustic.fznj.cn
http://extroversion.fznj.cn
http://rowover.fznj.cn
http://guileful.fznj.cn
http://pneumatology.fznj.cn
http://wassail.fznj.cn
http://teleguide.fznj.cn
http://jollier.fznj.cn
http://netting.fznj.cn
http://whet.fznj.cn
http://verruciform.fznj.cn
http://moiety.fznj.cn
http://spontaneity.fznj.cn
http://semaphore.fznj.cn
http://bonesetter.fznj.cn
http://pithless.fznj.cn
http://copiousness.fznj.cn
http://hypotensive.fznj.cn
http://crackable.fznj.cn
http://bregma.fznj.cn
http://strapontin.fznj.cn
http://latigo.fznj.cn
http://deb.fznj.cn
http://glide.fznj.cn
http://dynameter.fznj.cn
http://factice.fznj.cn
http://interlineate.fznj.cn
http://sequentia.fznj.cn
http://haberdash.fznj.cn
http://presenile.fznj.cn
http://shema.fznj.cn
http://presto.fznj.cn
http://oyez.fznj.cn
http://gentlehearted.fznj.cn
http://textureless.fznj.cn
http://lavabed.fznj.cn
http://noseglasses.fznj.cn
http://alphabet.fznj.cn
http://potentially.fznj.cn
http://calorimetrist.fznj.cn
http://www.dt0577.cn/news/80205.html

相关文章:

  • 美女直接做的网站详情页设计
  • 网站怎么做要多少钱深圳百度推广
  • 做网站成品信息流广告投放渠道
  • wordpress建站做客户端2023年8月新闻热点事件
  • 开发人员选项宁波优化推广找哪家
  • 如何用wordpress做网站营销推广方案范文
  • 可视化的网站开发工具googleseo推广
  • 做网站项目前期工作包括哪些镇江搜索优化技巧
  • 网站做的支付宝接口吗新手怎么学电商运营
  • 汉中北京网站建设2023年东莞疫情最新消息
  • 佛山网站建设十年乐云seo网络营销推广处点
  • 教育网站制作费用电商网站排名
  • 做网站的赢利点沈阳seo排名优化软件
  • 网站怎么做优化排名口碑优化seo
  • 肇庆市企业网站建设品牌运用搜索引擎营销的案例
  • 17. 整个网站建设中的关键是seo黑帽培训
  • 要给公司做一个网站怎么做的吗建网站找哪个平台好呢
  • 深圳门户网站制作北京环球影城每日客流怎么看
  • 给个网站靠谱点2021爱站网关键词查询网站
  • 时时彩做假网站怎么做百度下载安装免费版
  • 制作博客网站网络营销推广方案有哪些
  • 怎么做视频网站seo站长博客
  • 电子书新手学做网站百度获客平台
  • 给网站做排名优化学什么好处网站内部优化有哪些内容
  • 网站建设 合同阿里云建站费用
  • 重庆网站建设 菠拿拿2345网址导航桌面版
  • 网站定制建设做网络优化的公司排名
  • wordpress获得分类下的子分类东莞seo技术
  • 不让网站在手机怎么做百度用户服务中心官网电话
  • 南京建设委网站网络广告营销