求教大虾 ifstream::open() 和 ifstream::get() 的问题
使用ifstream::open()无法正常打开文件;
在测试中使用了三个文本文件,仅第一个能打开;
初步确定和其中"ifstream in_file;"的位置有关,
和 "while((c = in_file.get()) != EOF) cout << c;" 有关;
求教各位大虾;
#include<iostream>c++ ifstream::open() ifstream::get() 测试
#include <fstream>
#include <string>
using namespace std;
int main()
{
const int file_num = 3;
const char* file_names[file_num] = {
"d:\\a.txt",
"d:\\b.txt",
"d:\\c.txt"
};
ifstream in_file;
for (int i = 0; i < file_num; i++)
{
//若用此句替换循环外定义语句,文件能顺利打开;
//ifstream in_file;
in_file.open(file_names[i], ios_base::in);
if (!in_file)
{
cout << "can't open file\n" ;
continue;
}
char c;
while((c = in_file.get()) != EOF) cout << c; //若无此句,文件能顺利打开;
in_file.close();
}
//in_file.close();
return 0;
}
[解决办法]
其实,要永远尽量避免复用句柄类变量。