我想打开一个文件进行阅读,即C++方式.我需要能够做到:
文本文件,涉及某种读取线功能.
二进制文件,它提供了一种将原始数据读入char*
缓冲区的方法.
Derek Park.. 30
ifstream
如果您只想阅读(使用一个ofstream
写入,或fstream
两个用于),您需要使用.
要以文本模式打开文件,请执行以下操作:
ifstream in("filename.ext", ios_base::in); // the in flag is optional
要以二进制模式打开文件,只需添加"binary"标志即可.
ifstream in2("filename2.ext", ios_base::in | ios_base::binary );
使用该ifstream.read()
函数读取字符块(以二进制或文本模式).使用getline()
函数(它是全局的)来读取整行.
ifstream
如果您只想阅读(使用一个ofstream
写入,或fstream
两个用于),您需要使用.
要以文本模式打开文件,请执行以下操作:
ifstream in("filename.ext", ios_base::in); // the in flag is optional
要以二进制模式打开文件,只需添加"binary"标志即可.
ifstream in2("filename2.ext", ios_base::in | ios_base::binary );
使用该ifstream.read()
函数读取字符块(以二进制或文本模式).使用getline()
函数(它是全局的)来读取整行.
根据您的需要,有三种方法可以做到这一点.您可以使用旧式C语言并调用fopen/fread/fclose,或者您可以使用C++ fstream工具(ifstream/ofstream),或者如果您使用的是MFC,请使用CFile类,它提供了实现实际的功能文件操作.
所有这些都适用于文本和二进制,但没有一个具有特定的readline功能.在这种情况下,你最有可能做的是使用fstream类(fstream.h)并使用流操作符(<<和>>)或读取函数来读/写文本块:
int nsize = 10; char *somedata; ifstream myfile; myfile.open(""); myfile.read(somedata,nsize); myfile.close();
请注意,如果您使用的是Visual Studio 2005或更高版本,则可能无法使用传统的fstream(有一个新的Microsoft实现,略有不同,但完成相同的操作).