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

富阳市建设局网站做十个网站

富阳市建设局网站,做十个网站,做问卷调查用哪个网站好,安平网站建设目录 前言 文件的打开和关闭的概念 文件的打开 文件的打开函数 文件打开的模式 文件的关闭 文件的关闭函数 注意事项 字符的输入#xff08;读单个字符#xff09; 字符输入的函数 注意事项 字符的输出#xff08;写单个字符#xff09; 字符输出的函数 注意…目录 前言 文件的打开和关闭的概念 文件的打开 文件的打开函数 文件打开的模式 文件的关闭 文件的关闭函数 注意事项 字符的输入读单个字符 字符输入的函数 注意事项 字符的输出写单个字符 字符输出的函数 注意事项 行输入读取整个行 行输入的函数 注意事项 行输出写整行 行输出的函数 二进制读写 文本文件和二进制的区别 二进制读写函数 注意事项 流的刷新 流的刷新函数 流的定位 流的定位函数 注意事项 判断流是否出错和结束 判断流是否出错和结束函数 格式化输出 格式化输出函数 格式化输入 格式化输入函数 代码练习 要求 具体实现代码 测试结果 总结 前言 上文对标准IO、流及缓冲区的概念进行介绍并进行了相关实验上文链接点这里本文来介绍使用标准IO进行文件的打开、关闭、读、写等相关操作。 文件的打开和关闭的概念 打开就是占用资源 关闭就是释放资源 文件的打开 文件的打开函数 FILE *fopen (const char *path, const char *mode); path普通文件当前路径不需要加目录其他要使用完成的路径 mode文件打开的模式 返回值出错返回NULL所以使用fopen函数必须判断是否为空 文件打开的模式 r或rb以只读方式打开文件文件必须存在。r或rb以读写方式打开文件文件必须存在w或wb以只写方式打开文件若文件存在则文件长度清为0。若文件不存在则创建。w或wb以读写方式打开文件其他同w。a或ab以只写方式打开文件若文件不存在则创建向文件写入的数据被追加到文件末尾。a或ab以读写方式打开文件。其他同a。 文件的关闭 文件的关闭函数 int fclose(FILE *stream) fclose()调用成功返回0失败返回EOF(-1)并设置errno。 流关闭时自动刷新缓冲中的数据并释放缓冲区比如常规文件把缓冲区内容写入磁盘。 当一个程序正常终止时所有打开的流都会被关闭。 注意事项 fclose()函数的入参stream必须保证为非空否则出现断错误。 字符的输入读单个字符 字符输入的函数 int fgetc(FILE *stream); int getc(FILE *stream); //宏 int getchar(void);成功时返回读取的字符若到文件末尾或出错时返回EOF(-1)。 getchar()等同于fgetc(stdin) getc和fgetc区别就是一个时宏一个是函数 注意事项 1、函数返回值是int类型不是char类型主要是为了扩展返回值的范围。 2、stdin也是FILE*的指针是系统定义好的指向的是标准输入键盘输入。 3、打开文件后读取是从文件开头开始读读完一个后读写指针会后移。 4、调用getchar会阻塞等待你的键盘输入 字符的输出写单个字符 字符输出的函数 int fputc(int c, FILE *stream); int putc(int c, FILE *stream); int putchar(int c);成功时返回写入的字符出错时返回EOF。 putchar(c)等同于fputc(c, stdout)。 注意事项 1、返回和输入参数都是int类型 2、遇到这种错误Bad file descriptor  很可能是文件打开的模式错误只读模式去写只写模式去读 行输入读取整个行 行输入的函数 char *gets(char *s); 读取标准输入到缓冲区s char *fgets(char *s, int size, FILE *stream);成功时返回s到文件末尾或出错时返回NULL 遇到’\n’或已输入size-1个字符时返回总是包含’\0’ 注意事项 1、gets函数已经被淘汰因为会导致缓冲区溢出 2、fgets 函数第二个参数输入的数据超出sizesize-1个字符会保存到缓冲区最后添加’\0’如果输入数据少于size-1 后面会添加换行符。 行输出写整行 行输出的函数 int puts(const char *s); int fputs(const char *s, FILE *stream);成功时返回非负整数出错时返回EOF puts将缓冲区s中的字符串输出到stdout并追加’\n’ fputs将缓冲区s中的字符串输出到stream,不追加  ‘\n’ 二进制读写 文本文件和二进制的区别 存储的格式不同文本文件只能存储文本。 计算机内码概念文本符号在计算机内部的编码计算机内部只能存储数字0101001....,所以所有符号都要编码 二进制读写函数 size_t fread(void *ptr, size_t size, size_t n, FILE *fp); //void *ptr 读取内容放的位置指针 //size_t size 读取的块大小 //size_t n 读取的个数 //FILE *fp 读取的文件指针size_t fwrite(const void *ptr, size_t size, size_t n, FILE *fp); //void *ptr 写文件的内容的位置指针 //size_t size 写的块大小 //size_t n 写的个数 //FILE *fp 要写的文件指针注意事项 文件写完后文件指针指向文件末尾如果这时候读读不出来内容。 解决办法移动指针后面讲解到文件头关闭文件重新打开 流的刷新 流的刷新函数 int fflush(FILE *fp); 成功时返回0出错时返回EOF。 将流缓冲区中的数据写入实际的文件。 Linux下只能刷新输出缓冲区,输入缓冲区丢弃。 如果输出到屏幕使用fflush(stdout)。 流的定位 流的定位函数 long ftell(FILE *stream); long fseek(FILE *stream, long offset, int whence); void rewind(FILE *stream);ftell()成功时返回当前读写位置出错时返回EOF。 fseek()定位一个流成功时返回0出错时返回EOF。 rewind()将流定位到文件开始位置 whence参数SEEK_SET/SEEK_CUR/SEEK_END offset参数偏移量可正可负 SEEK_SET从距文件开头 offset 位移量为新的读写位置SEEK_CUR以目前的读写位置往后增加 offset 个位移量SEEK_END将读写位置指向文件尾后再增加 offset 个位移量 注意事项 1、打开a模式fseek无效 2、读写流时当前读写位置自动后移。 判断流是否出错和结束 判断流是否出错和结束函数 #include stdio.h int ferror(FILE *stream); int feof(FILE *stream);ferror()返回1表示流出错否则返回 feof()返回1表示文件已到末尾否则返回0 格式化输出 格式化输出函数 int fprintf(FILE *stream, const char *fmt, …); int sprintf(char *s, const char *fmt, …);成功时返回输出的字符个数出错时返回EOF。 格式化输入 格式化输入函数 int fscanf(FILE *stream, const char *format, ...); int sscanf(const char *str, const char *format, ...);代码练习 要求 1、每隔1s以指定格式 “年-月-日” 分别写入文件和缓冲区 2、该程序无限循环直到CtrlC中断程序 具体实现代码 #include stdio.h #include time.h #include unistd.h #include string.h int main(int argc,const char* argv) {FILE *fp;time_t ctime;struct tm *ctimester;int linecount 0;char buf[32];fp fopen(1.txt,a);if(fp NULL){perror(fopen);return 0;}//calculate 1.txt linewhile(fgets(buf,32,fp)!NULL){if(buf[strlen(buf)-1] \n){linecount;}}while(1){ctime time(NULL);ctimester localtime(ctime);printf(%04d-%02d-%02d %02d:%02d:%02d\n,ctimester-tm_year1900,ctimester-tm_mon1,ctimester-tm_mday,ctimester-tm_hour,ctimester-tm_min,ctimester-tm_sec);fprintf(fp,%d, %04d-%02d-%02d %02d:%02d:%02d\n,linecount,ctimester-tm_year1900,ctimester-tm_mon1,ctimester-tm_mday,ctimester-tm_hour,ctimester-tm_min,ctimester-tm_sec);fflush(fp);sleep(1);}fclose(fp);return 0; }测试结果 总结 本文总结了C语言标准IO的输入、输出、读写、流的刷新定位等相关概念及函数介绍并根据这些函数进行了一个包含文件打开关闭、读写、格式化输出等内容的实现。
http://www.zqtcl.cn/news/170376/

相关文章:

  • 罗湖附近公司做网站建设哪家便宜做cpa必须要有网站吗
  • 深圳网站开发教程wordpress密码登录插件
  • 农机网站建设目标上海网站建设工资多少
  • 手机做网站过程网站名字做版权需要源代码吗
  • 公司微信网站建设方案现在做外贸前景如何
  • 如何使用微信公众号做网站河南省专业做网站公司
  • 清远市清城区网站建设公司广州黄浦区建设局网站
  • 站长做2个网站网站程序指的是什么
  • 网站建设jw100请拿笔记记下新域名
  • 兰州市住房保障和城乡建设局网站如何有效的推广网站
  • 网站推广做百度还是360北京企业网站建设费用
  • 推荐一个简单的网站制作策划方案免费网站
  • 用vs2012做网站案例企业现在有必要做网站吗
  • 网站建设少用控件wordpress默认分类
  • php网站是什么数据库文件网站开发收
  • 新网网站空间做网站和app哪类商标
  • drupal网站建设数据库厦门市网站建设
  • 解释微信微网站室内设计效果图展板
  • 教做发绳的网站游戏网站建设需要多少钱
  • 那个网站可以做双色球号码对比的网站设计好学吗
  • 网站建设如何获取客户韩国建筑网站
  • 固始网站建设公司wordpress会员功能
  • 在哪找做调查赚钱的网站好自己做网站的成本
  • 网站开发职业xshuan主题wordpress
  • 网站代码框架建设网站需要学什么程序
  • 广州搜索seo网站优化企业邮箱密码忘了怎么重置密码
  • 重庆模板网站建设做新房网站怎么弄
  • 深圳做企业网站公司常用的网络营销方式
  • 建设网站公司怎么建站网站开发笔记
  • 网站网页建设论文惠州建设网站公司