2013-06-25 207 views
0

我想編寫一個程序,它允許用戶寫一些隨機的東西,但我得到了一個 錯誤,說文件處理C++錯誤

 no matching call to
,我無法弄清楚。請幫幫我。 當你試圖回答這個問題時,嘗試更具體的noob。

這裏是我的代碼

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

using namespace std; 

int main() 
{ 
    string story; 
    ofstream theFile; 
theFile.open("Random.txt"); 
while(cin.get(story,5000)!=EOF) 
{ 
    theFile<< story; 
} 
return 0; 
} 
+0

什麼是錯誤你有? –

+0

沒有匹配調用「std :: basic_istream :: get(std :) :) and more」 –

+1

檢查[文檔](http://en.cppreference.com/w/cpp/io/basic_istream/get) - 使用'std :: string'的'istream :: get'沒有重載。 – jrok

回答

1

cin.get以2個參數預計char*作爲第一個參數,你試圖傳遞string作爲第一個參數。

如果你想讀std::string而不是C字符串直到一行的末尾使用getline(cin, story)

如果你想讀的字符串直到下一個空格或換行或其他空白符號使用cin >> story;

1

你似乎試圖將cin的內容寫入文件。你可以只使用流運營商:

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

using namespace std; 

int main() 
{ 
    string story; 
    ofstream theFile; 
    theFile.open("Random.txt"); 

    if(cin >> story) 
    { 
    theFile << story.substr(0, 5000); 
    } 

    return 0; 
} 

我假設你只是想在Random.txt第5000個字符...