如何根据用户输入打开文件?

时间:2013-03-26 18:46:38

标签: c++ filenames istream

此代码一直给我错误,我不知道我做错了什么? 如何请求用户输入文件名,然后打开该文件并执行 有数据的任务。

示例:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main ()
{ 
ifstream inData;
ofstream outData;
string fileName;

cout << "Enter the data file Name : " << endl;//asks user to input filename
cin >> fileName; //inputs user input into fileName

inData.open(fileName); //heres where i try to open the file with the users input?
outData.open(fileName);
cout << fileName;
return 0;   
} 

代码一直给我错误。我试过用getline?我希望fileName是字符串 而不是char。

1 个答案:

答案 0 :(得分:4)

您将std::string个对象传递给参数,而不是实际的以null结尾的char指针。为此,请使用c_str

inData.open(fileName.c_str());
outData.open(fileName.c_str());