C/C++ 文件读写

C 方式:

FILE *fopen(const char *filename,const char *mode)

mode:  r以只读方式打开文件,该件必须存在。r+以可读写方式打开文件。w 打开只写文件,若文件存在则文件长度清为0。w+打开可读写文件。 a写入加到文件尾(EOF符保留)a+(原来的EOF符不保留),b以二进制格式打开。

例FILE* fp = fopen("name.txt", "w");


fread/fwrite  (const void* buffer, size_t size, size_t count, FILE* stream)

fwrite函数写到用户空间缓冲区,并未同步到文件中。可使用fflush(FILE *fp)函数同步。


fseek(FILE *stream, long offset, int fromwhere)

调整文件指针位置;fromwhere: 文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))

C++ fstream:

seekg/p: 设置get/put 文件指针

tellg/p: 显示文件指针位置

1.注意:fstream在文件中没有插入功能,在中间写入时,会覆盖后面的内容。

2.注意:MS中的fstream中的读写文件指针不是相互独立的。也就是说,如果读操作改变了文件指针的位置,会影响到下一步要做的写操作。

This statement can lead to some confusion as to whether the get and put pointers are independent of each other. In the Microsoft iostream library implementation of fstream, these pointers are not independent of each other. If the get pointer moves, so does the put pointer. The source code listed below demonstrates this behavior.

参考:http://support.microsoft.com/kb/104634/en-us

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值