我看了幾個鏈接,如this和this。爲什麼我得到一個錯誤:沒有重載函數「getline」的實例與參數列表匹配嗎?
不幸的是,我只是一個程序員的新來弄明白。我想要具有以下行while(getline(getline(fin, line))
,因爲我試圖從文件中讀取整行文本。然後我試圖弄清楚該文件中是否有類似的詞或數字。我在微軟的Visual Studio 2012
#include <iostream>
#include <fstream>
#include <sstream>
#include <cctype>
#include <string>
using namespace std;
// main application entry point
int main(int argc, char * argv[])
{
string filename;
ifstream inFile;
// request the file name from the user
cout << "Please enter a filename: ";
// stores the users response in the string called filename
cin >> (std::cin, filename);
// opens the file
inFile.open(filename.c_str());
// if the file doesn't open
if (!inFile)
{
cout << "Unable to open file: " << filename << endl;
return -1;
} // end of if(!inFile)
// while(getline(getline(fin, line)) gives me the same error
while (getline())
{}
// close the file
inFile.close();
} // end of int main(int argc, char* argv[])
只是好奇:你認爲'cin >>(std :: cin,filename)'做了什麼? – 0x499602D2
我認爲它確實如此: //將用戶的響應存儲在名爲文件名 的字符串中,但在您發表評論之後,看起來我完全錯了。 – user26093
不,你說得對,它只是在以不必要的方式來做這件事。 '(std :: cin,filename)'與'filename'相同,因爲逗號運算符'''返回最右邊的操作數。你真正需要的是'std :: cin >> filename'。 – 0x499602D2