我工作的一個程序,現在和我得到這個錯誤:問題Oppening文件寫在介紹C++
writeOddEven.cpp:35: error: no match for call to ‘(std::ofstream) (const char*, const std::ios_base::openmode&)’
這是我以前從來沒有見過,似乎無法找到任何信息關於在線。在我的程序中,我試圖讀入2個文件的用戶指定名稱,然後根據用戶指定的整數爲偶數或奇數輸入用戶指定的整數。到目前爲止我的代碼是這樣的:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string odd_name; //odd number file name
string even_name; //even number file name
ofstream fout_odd; //fout for odd file
ofstream fout_even; //fout for even file
//Get file names
cout<<"Enter name of file for odd integers: ";
getline(cin, odd_name);
cout<<"Enter name of file for even intgers: ";
getline(cin, even_name);
//Open files;
fout_odd(odd_name.c_str(), ios::out); //*ERROR HERE*
fout_even(even_name.c_str(), ios::out); //*ERROR HERE*
...
fout_odd.close();
fout_even.close();
我能想到的唯一的事情就是某種與我的格式錯誤的「的ios ::出來」,但我不知道怎麼換一種說法。
編輯所以我完全忘了在這些線路上的 「打開()」 部分:
fout_odd(odd_name.c_str(), ios::out);
fout_even(even_name.c_str(), ios::out);
所以他們應該閱讀: fout_odd.open(odd_name.c_str(),IOS ::出來); fout_even.open(even_name.c_str(),ios :: out);
構造函數轉到創建對象的位置。 – chris 2013-04-22 00:46:27