2016-04-05 45 views
0

我是編程新手,這是我的第二個項目。 我跟着教練的筆記寫這些使用ifstream打開文件,但總是有一個錯誤說 錯誤:沒有匹配函數調用'std :: basic_ifstream ::打開(std :: string &)'|無法在C++中使用ifstream打開文件

string filename,command; ifstream myfile;代碼

+0

您是否在代碼中添加了文件擴展名? – Auriga

+0

完整的錯誤在那裏,並沒有那不是一個鏈接錯誤。它與文件擴展名也沒有任何關係。 –

回答

1

cout << "Enter the file name: "; 
cin >> filename; 
myfile.open(filename); 
while(myfile >> numloops) 
{ 
    while(numloops != 0) 
    { 

一部分您使用的是C++編譯器03。

僅僅因爲C++ 11可以使用std::string來爲std::fstream構造函數或std::fstream::open()提供文件名。

由於歷史原因,該標準的舊版本需要使用C風格的字符串。

您可以使用獲得一個std::string::c_str(),所以:

myfile.open(filename.c_str()); 

理想的情況是,你會使用一個非古編譯器來代替。