gpt4 book ai didi

c++ - 在介绍 C++ 中发出要写入的打开文件

转载 作者:行者123 更新时间:2023-11-28 00:46:15 25 4
gpt4 key购买 nike

我现在正在开发一个程序,但遇到了这个错误:

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::out”格式有某种错误,但我不知道如何改写。

编辑 所以我完全忘记了这些行中的“open()”部分:

  fout_odd(odd_name.c_str(), ios::out);
fout_even(even_name.c_str(), ios::out);

所以他们应该阅读: fout_odd.open(odd_name.c_str(), ios::out); fout_even.open(even_name.c_str(), ios::out);

最佳答案

尝试以下操作:

 //^^^^remove these two lines
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;
//^^you should supply parameters when constructing
//the fout_odd and fout_even object
ofstream fout_odd(odd_name.c_str(), ios::out);
ofstream fout_even(even_name.c_str(), ios::out);

您可以从 C++ File I/O documentation 中找到更多信息

编辑:您也可以尝试以下操作:

 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; provide option when open the files to write
fout_odd.open(odd_name.c_str(), ios::out);
fout_even.open(even_name.c_str(), ios::out);

关于c++ - 在介绍 C++ 中发出要写入的打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com