标签:style blog http io ar os sp strong on
今天Mayuyu来学习C++文件操作,在C++中关于文件操作的方法主要有如下几个
(1)fopen()
此函数的原型为
如果文件打开失败会返回NULL,如果失败一般会做判断处理。参数说明如下
path 代表文件名
mode 代表数据流形态,一般有如下一些模式
r 以只读的方式打开文件
r+ 以可读写方式打开文件
rb+ 以读写方式打开一个二进制文件
w 打开只写文件,如果文件存在,则清空文件并写入新数据,如果不存在则建立新文件
w+ 打开可读写文件,如果文件存在,则清空文件并写入新数据,如果不存在则建立新文件
a 以附加的方式打开只写文件,如果文件存在,写入的数据会被加到文件尾,否则建立新文件
a+ 以附加的方式打开可读写的文件,如果文件存在,写入的数据会被加到文件尾,否则建立新文件
wb 只写打开或者建立一个新的二进制文件,只允许写数据
wb+ 读写打开或者建立一个新的二进制文件,允许读和写数据
ab+ 读写打开一个二进制文件,允许读或者在文件末尾追加数据
(2)fseek()
函数原型为
作用:把stream的文件读写位置指针移到指定的位置。
参数说明:
stream fopen()得到的文件指针
offset 表示偏移量,正数表示正向偏移,负数表示负向偏移
fromwhere 表示从文件的哪里开始偏移,可能取值为SEEK_SET,SEEK_CUR,SEEK_EN。
其中SEEK_SET,SEEK_CUR,SEEK_EN值分别是0,1,2,也可以用它们来代替。
(3)ftell()
函数原型为
作用:得到文件位置指针当前位置相对于文件首的偏移字节数。参数为文件的指针。
(4)fread()和fwrite()
函数原型如下
作用:分别用于读取和写文件。参数说明(主要说明中间两个参数)
size 表示要读写的字节数
count 要进行读写多少个size字节的数据项
代码:
#include <string.h> #include <stdio.h> #define LEN 15 #define SIZE 1024 char in_file[LEN]; char ou_file[LEN]; char buff[SIZE]; int main(int argc, char **argv) { strcpy(in_file, argv[1]); strcpy(ou_file, argv[2]); FILE *fd = fopen(in_file, "r"); if(!fd) { printf("open input file error!\n"); return -1; } fseek(fd, 0, SEEK_END); long len = ftell(fd); fseek(fd, 0, SEEK_SET); fread(buff, len, 1, fd); fclose(fd); printf("Input String is : %s\n", buff); printf("The size of the input file is : %ld\n", len); FILE *fp = fopen(ou_file, "w"); if(!fp) { printf("open output file error!\n"); return -1; } fwrite(buff, len, 1, fp); fclose(fp); return 0; }
标签:style blog http io ar os sp strong on
原文地址:http://blog.csdn.net/achelloworld/article/details/41850821