C++如何使用fsteam一次读完未知大小的文件

近期在写一个socket程序,在过程中遇到一个问题:如何将一个未知大小的文件按照8k字节的内存全部读完。

使用这种方法可以实现读出文件大小:

ifstream infile("111.bmp",ifstream::binary);
定义一个ifstream的输入  infile 文件流对象

	infile.seekg(0,ios::end);
	length = infile.tellg();
	infile.seekg(0,ios::beg);

首先使用 
infile.seekg() 将文件指针指向结尾,通过读取infile.tellg()返回值即文件的大小;

最后需要执行 infile.seekg(0,ios::beg);将文件的指针重新指向开头,因为后面操作需要文件开头操作文件。


内存与硬盘数据交换例程:http://download.csdn.net/download/m0_37877590/10142113


最后注意:如果在Linux系统上操作,需要注意用户权限问题,如果文件没有写权限的话,使用ofstream新建文件是不会成功的

你可能感兴趣的:(C++)