C语言文件输入、输出 I/O(十二)
2016-04-21 17:21
471 查看
fopen
read write setvbuf
结构体写入文件、文件读取结构体
函数 rewind(FILE *)
确保文件位置指针处于文件开始部分,为开始读取做好准备
void file() { char *s="That's good news"; /*定义字符串指针并初始化*/ int i=617; /*定义整型变量并初始化*/ FILE *fp; /*定义文件指针*/ fp= fopen("test.rtf", "w"); /*建立一个文字文件只写*/ fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/ fputc(':', fp); /*向所建文件写冒号:*/ fprintf(fp, "%d/n", i); /*向所建文件写一整型数*/ fprintf(fp, "%s", s); /*向所建文件写一字符串*/ fclose(fp); /*关闭文件*/ //"Your score of TOEFLis:617/nThat's good news" }
read write setvbuf
#pragma mark - fread fwrite 和 setvbuf缓冲区 void freadAndFwrite() { char bb[100] = "去你妹的 fread fwrite"; FILE *fp = fopen("read.rtf", "w+"); //方法一:将长度为100的数组 分为一块数据存储到 fp // fwrite(bb, 100, 1, fp); // fclose(fp); //fp文件未进行操作前可以进行缓冲区刷新 /* _IOFBF 表示完全缓冲(缓冲区满的时候刷新) _IOLBF 表示行缓冲(缓冲区满的时候或者一个新行写入的时候刷新) _IONBF 表示无缓冲 以上如果成功,返回0值,否则非0值 */ if (setvbuf(fp, NULL, _IOFBF, BUFSIZ)!=0) { fputs("Can't build", stderr); exit(3); } //方法二:将长度为100的数组 分为100块数据,每块数据占用一个char长度 存储到 fp fwrite(bb, sizeof(char), 100, fp); //fread 将fp的 100个元素复制到 b数组, char b[100];// = "asfdghjkl qwertyu dfvcxz"; //文件定位,0 默认开始位置 fseek(fp, 0, SEEK_SET); size_t a = fread(b, 100, 1, fp); fclose(fp); }
结构体写入文件、文件读取结构体
struct book { char a[100]; char b[100]; int c; };
void bookToWrite() { struct book bookMark; struct book bookRead; FILE *fp; puts("enter a"); gets(bookMark.a); puts("enter b"); gets(bookMark.b); bookMark.c = 1; if ((fp=fopen("data.dat", "w+b"))==NULL) { puts("error"); } // for (int i = 0; i<3; i++) { // fwrite(&bookMark, sizeof(struct book), sizeof(struct book), fp); // // } fwrite(&bookMark, sizeof(struct book), 1, fp); fclose(fp); FILE *pp; if ((pp=fopen("data.dat", "r"))) { fread(&bookRead, sizeof(struct book), 1, pp); } }
函数 rewind(FILE *)
确保文件位置指针处于文件开始部分,为开始读取做好准备
相关文章推荐
- c++中常见的类型转换int,string,float
- 详解C++中实现继承string类的MyString类的步骤
- 虚基类
- C++学习笔记
- C语言中的break、continue和goto三者的区别与用法
- C++第4次实验—输出星号图
- C++无法打开文件 xx.lib
- C++:google style 强制类型转换
- c++ 前置++与后置++的区别
- 遗传算法的C++实现
- c++11 auto
- c++ lambda表达式
- C++ 类的“三法则”
- 如何理解虚表及其计算含虚函数的类的大小
- C++ 基础杂项
- 【c语言】输出杨辉三角
- C++匿名对象
- c语言之关键字
- 理解C语言的数组和指针
- 理解C语言的数组和指针