使用字符串发出ifstream开头(c ++)

时间:2015-06-03 12:15:21

标签: c++ ifstream stringstream

在c ++中打开ifstream时遇到一个奇怪的问题。 在函数内部我正在读取一个包含标签的文件(这很好),并且使用这个标签我构建了一个包含完整文件名的字符串流。

ifstream infile1;
infile1.open("label.txt");
int a;
infile1 >> a;
stringstream stream1;
stream1 << "./Path1/filename_" << a << ".txt" ;
string pathfile(stream1.str());

之后我需要将流的内容传递给函数作为字符串的引用,以便打开ifstream对象。这个函数的第一行看起来像这样:

void Function(string &pathfile, ..., ...){
    ifstream inFile2;
    inFile2.open(pathfile.c_str());
    if(inFile2.fail()) cerr << " Error opening file " << endl;

    ...
}

此过程不起作用,我不断收到“打开文件错误”消息。我试图在两个函数中打印出stringstream和string的内容,它们都对应于所查找的文件名。 奇怪的是,在我没有通过stringstream的情况下,该过程正常,这意味着当我手动写入string确切的文件路径并将字符串传递给function1时。 / p>

string filepath2 = "./Path1/filename_1.txt";
function1(filepath2,...,...);

我无法弄清楚流提供什么样的问题。

0 个答案:

没有答案