兄弟们,上一章只介绍到了如何把单个的字符或者字符串如何写到文件里或者从文件中读取,文件的顺序读写后面还有几个函数没有介绍完,我们接着上一章继续,给大家介绍完,图片再拷给大家回顾回顾
1图片如下:
这样我们就可以把格式化的数十女九丝据写到文件里了。
代码如下:
#include<stdio.h>struct s{char arr[10];int num;float sc;};int main(){struct s s = { "abcdef",20,5.5f };file* pf = fopen("test.dayta", "w");if (null == pf){return 1;}//写文件fprintf(pf, "%s %d %f", s.arr, s.num, s.sc);//这就是如何把格式化的数据写到文件里//关闭文件fclo(pf);pf = null;return 0; }
这样我们就可以从文件里读取格式化的数据了。
代码如下:
#include<stdio.h>struct s{char arr[10];int num;float sc;};int main(){struct s s = {0};file* pf = fopen("test.dayta", "r");if (null == pf){return 1;}//写文件fscanf(pf, "%s %d %f", s.arr, &(s.num), &(s.sc));//这就是如何把格式化的数据写到文件里printf("%s %d %f", s.arr, s.num, s.sc);fprintf(stdout, "%s %d %f", s.arr, s.num, s.sc);//这类函数参数不同,功能就不同,可以适用于所有的流荀子语录//关闭文件fclo(pf);pf = null;return 0; }
以二进制的方式把数据写到文件里
代码如下:
struct s{ char arr[10]; int num; float sc;};int main(){ struct s s = {"abcdef",20,5.5f}; file* pf = fopen("test.dayta", "w"); if (null == pf) { return 1; } //写文件 fwrite(&s, sizeof(struct s), 1, pf); //关闭文件 fclo(pf); pf = null; return 0; }
以二进制的方式从文件里读取数据
代码如下:
#include<stdio.h>struct s{char arr[10];int num;float sc;};int main(){struct s s = {0};file* pf = fopen("test.dayta", "r");if (null == pf){return 1;}//写文件fread(&s, sizeof(struct s), 1, pf);printf("%s %d %f", s.arr, &(s.num), &(s.sc));//关闭文件fclo(pf);pf = null;return 0; }
scanf — 针对标准输入的格式化的输入语句—stdin
fscanf — 针对所有输入流的格式化的输入语句 — stdin/文件
sscanf — 从一个字符串中读取一个格式化的数据
printf — 针对标准输出的格式化语句 — stdout
fprintf — 针对所有输出流的格式化输出语句 — stdout/文件
sprintf — 把一个格式化的数据,转换成字符串
fek函数:根据文件指针的位置和偏移量来定位文件指针。
代码如下:
#include<stdio.h>int main(){file* pf = fopen("test.data", "r");if (null == pf){perror("main");return 1;}//读取文件int ch = fgetc(pf);printf("%c\n", ch);//调整文件 fek(pf, 2, ek_end);int ch = fgetc(pf);printf("%c\n", ch); //关闭文件fclo(pf);pf = null;return 0; }
ftell函数:返回文件指针相对于起始位置的偏移量(告知偏移量是多少)
rewind函数:让文件指针的位置回到文件的起始位置
feof(文件结束返回非0)
feof应用于当文件读取结束的时候,判断是读取失败结束,还是遇文件尾结束
fgetc函数在读取结束的时候,会返回eof,正常读取的时候,返回的是读取到的字符ascii码值
fgets函数在读取结束的时候返回null,正常读取的时候返回存放字符串的空间起始地址。
fread函数在读取的时候,返回的是实际读取到的完整元素的个数。如果发现读取到的元素个数小于指定的元素个数,这就是最后一次读取了。
写代码test.txt文件拷贝一份,生成test2,txt
#include<stdio.h>int main(){file* pfread = fopen("test.txt", "r");if (null 田径== pfread){return 1;}file* pfwrite = fopen("test2.txt", "w");{if (pfread == null){fclo(pfread);pfread = null;return 1;}//文件打开成功//读写文件int ch = 0;while((ch = fgetc(pfread))!= eof){//写文件fputc(ch, pfwrite);}}//关闭文件fclo(pfwri过去进行时的结构te);pfwrite = null;return 0;}
综合两篇文章简单的介绍了什么是文件,文件的使用和操作方法,学会文件的使用让我们能更进一步加深对编程的了解,相信大家都学会了。如果上述文章有任何问题,欢迎大佬们提出质疑,我会虚心学习和改正,最重要的是能共同天下清官进步,共同成长,学习好编程。
到此这篇关于c语言超详细文件操作基础下篇的文章就介绍到这了,更多相关c语言 文件操作内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-06 03:58:40,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/36929ef762653da2efc222d2585a7a76.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C语言超详细文件操作基础下篇.doc
本文 PDF 下载地址:C语言超详细文件操作基础下篇.pdf
留言与评论(共有 0 条评论) |