// 打开文件,获得文件流 std::ifstream inFile(fileName.c_str(), std::ios::in | std::ios::binary); std::ostringstream oss; oss << inFile.rdbuf(); std::string buffer = oss.str(); inFile.close();
因为open()成员函数的参数是一个char *类型的量,要通过调用 string类的c_str()函数返回一个C风格的字符串(也就是一个字符数组的首地址,即char *值)才可以调用open()函数。
usingnamespacestd; intmain() { stringfileName;//读取文件名 cout<<"Enter file name: "<<endl; cin>>fileName; ifstreaminFile(fileName.c_str());//创建ifstream对象并绑定到名为fileName的文件 if(!inFile)//打开指定文件失败 { cerr<<"error: can not open input file: " <<fileName<<endl; r...
试图读取二进制文件的代码如下所示:{ ifstream ifs(fileName.c_str我使用了一个十六进制工具来查看二进制文件,并注意到第9个字节是一个空字符。带有相应ASCII的前16 浏览3提问于2021-03-28得票数 0 回答已采纳 0回答 二进制文件一次读取的字节数不同 、、 我正在从文件中读取二进制数据,然而,一次读取一...
ifstreaminFile(fileName.c_str()); An additional constructor that accepts aconst std::string&as the filename was added in C++11. Minor point: consider changing argumentstring fileNametoconst string& fileNameto avoid unnecessary copy offileName. ...
inFile>> …… >>; inFile.get();//读取最后的回车符if(inFile.peek() =='/n')break; } C语言多读一行,解决方案如下:逐行读取,判断每一行是否获取成功,获取成功则读取,否则中断 FILE *fp = fopen(fileName.c_str(),"r");if(fp) {while(!feof(fp)) ...
ifstream file2("c:\\pdos.def");//以输入方式打开文件 ofstream file3("c:\\x.123");//以输出方式打开文件 所以,在实际应用中,根据需要的不同,选择不同的类来定义: 如果想以输入方式打开,就用ifstream来定义; 如果想以输出方式打开,就用ofstream来定义; ...
std::ifstream inFile("example.txt", std::ios::in); if (!inFile) { std::cerr << "Error opening file." << std::endl; return 1; } 检查文件是否到达结尾 在读取文件时,可能需要检查是否已到达文件结尾。可以使用 eof() 成员函数来实现这一点: std::ifstream inFile("example.txt", std::ios...
ifstreamfile2("c:\\pdos.def");//以输入方式打开文件 ofstreamfile3("c:\\x.123");//以输出方式打开文件 所以,在实际应用中,根据需要的不同,选择不同的类来定义: 如果想以输入方式打开,就用ifstream来定义; 如果想以输出方式打开,就用ofstream来定义; ...
string read(string filename) { ifstream inFile; inFile.open(filename); stringstream strStream; strStream << inFile.rdbuf(); inFile.close(); string str = strStream.str(); return str; } 此代码在“zh”之后停止。我在想,也许它们是ascii表中的控制字符,停止 浏览3提问于2019-11-14得票数 0...