我工作的一个程序,现在和我得到这个错误:问题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