C++:无法将行从输入文件复制到输出文件

C++: Cannot copy line from an input file to an output file

本文关键字:文件 输入 复制 输出 C++      更新时间:2023-10-16
这是一个

家庭作业问题,所以如果你不是我理解的那些的粉丝。这是我的代码:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
    fstream myfile1("datafile1.txt"); //this just has a bunch of names in it
    fstream myfile2("cmdfile1.txt");  //has commands like "add bobby bilbums"
    ofstream outputFile("outfile1.txt"); //I want to take the "add bobby" command and copy the name into this new file.
    string line;
    if (myfile1.is_open() && myfile2.is_open()) //so I open both files
    {
        if (myfile2, line == "add"); //If myfile2 has an "add" in it
        {
            outputFile.is_open(); //open outputfile
            outputFile << line << endl; //input the line with add in it till the end of that line.
        }
    }
    cout << "nPress Enter..."; // press enter and then everything closes out.
    cin.ignore();
    outputFile.close();
    myfile2.close();
myfile1.close();
return 0;
}

问题是,尽管输出文件始终为空。它从不将任何行从 cmdfile1 复制到输出文件中。有谁知道我在这里错过了什么?

尝试更多类似的东西:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    ifstream myfile1("datafile1.txt");
    ifstream myfile2("cmdfile1.txt");
    ofstream outputFile("outfile1.txt");
    string line;
    if (/*myfile1.is_open() &&*/ myfile2.is_open() && outputFile.is_open())
    {
        while (getline(myfile2, line))
        {
            if (line.compare(0, 4, "add ") == 0)
            {
                outputFile << line.substr(4) << endl;
            }
        }
    }
    myfile1.close();
    myfile2.close();
    outputFile.close();
    cout << "nPress Enter...";
    cin.ignore();
    return 0;
}