2013-03-26 57 views
-2

此代碼不斷給我錯誤我不知道我做錯了什麼? 如何請求用戶輸入文件名,然後打開該文件並使用數據執行 任務。如何根據用戶輸入打開文件?

例子:

#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

通常,當您說出錯時,最好包含這些錯誤。你知道......以防萬一我們的水晶球不在店裏得到修理。 – 2013-03-26 18:51:58

+0

對不起,但我找到了這是一個簡單的問題? – user1725435 2013-03-26 18:53:31

+0

它可能是(並且在這種情況下*是*),但包括您得到的錯誤始終是一個好主意。 – 2013-03-26 18:54:47

回答

4

您正在將std::string對象傳遞給參數,而不是實際的以null結尾的字符指針。要做到這一點,請使用c_str

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

c_str()是什麼意思? – user1725435 2013-03-26 18:51:16

+0

@ user1725435 [這是std :: string :: c_str的文檔](http://en.cppreference.com/w/cpp/string/basic_string/c_str) – 0x499602D2 2013-03-26 18:52:15

+2

注意:這已經在C++ 11中進行了更改。 – 2013-03-26 18:56:11

相關問題