C语言中一些对文件操作的函数总结
2016-03-04 22:01
435 查看
/* C语言中一些对文件操作的函数总结 */ #include <stdio.h> #include <stdlib.h> #include <string.h> main() { void write_read_char(FILE *); void wriet_read_manyDatas(FILE *); void write_read_string(FILE *); FILE *fp; fp = fopen("1.txt", "w+"); if(fp == NULL) { printf("Open the file is failed!!\n"); exit(0); } // write_read_char(fp); wriet_read_manyDatas(fp); // write_read_string(fp); fclose(fp); } // 读写字符函数 void write_read_char(FILE *fp) { char ch; ch = getchar(); while(ch != '\n') { fputc(ch, fp); ch = getchar(); } rewind(fp);// 使文件指针回到文件头部 while(!feof(fp)) { ch = fgetc(fp); printf("%c", ch); } printf("\n"); } // 块读写函数 void wriet_read_manyDatas(FILE *fp) { char a[3][10] = {"The book", "Mom", "Love"}; char b[3][10]; int i = 0; for(i = 0; i < 3; i++) { // 这里要注意一下+1是为了把'\0',写入进文件,否者使用fread容易出错。 // 但是这样做会导致文本文件出现乱码。 fwrite(a[i], strlen(a[i])+1, 1, fp);// 写入9+4+5个字节的数据 } /* for(i = 0; i < 1; i++) { fwrite(a[i], strlen(a[i])+1, 3, fp);// 表示从首地址开始写入3*9个字节的数据 } */ rewind(fp); for(i=0; i < 3; i++) { fread(b[i], strlen(a[i])+1, 1, fp); printf("%s\n", b[i]); } /* // 这种操作可以保证文本文件和输出结果都不出现乱码 for(i = 0; i < 3; i++) { fwrite(a[i], strlen(a[i]), 1, fp); } rewind(fp); for(i=0; i < 3; i++) { int j = 0; fread(b[i], strlen(a[i]), 1, fp); j = strlen(a[i]); b[i][j] = '\0'; printf("%s\n", b[i]); } */ } // 字符串读写函数 void write_read_string(FILE *fp) { char a[20]; fputs("I Love You!!", fp); rewind(fp); fgets(a, strlen("I Love You!!"), fp); printf("%s\n", a); }
相关文章推荐