0

我试图从目录路径的输入中获取两个给定的文本文件,获取它们的整数,然后将这些整数输出到“合并”文本文件中。我是从 Java 开始接触 C++ 的新手,所以到目前为止弄清楚这一点相当棘手。此代码构建并运行,但我实际上并没有获得输出文件。有什么帮助吗?

编辑:

我有合并的文件工作,但我似乎无法让 data1 和 data2 按升序排序,因为它们已实现到输出文件“merge.txt”中。

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
void textMerge(){
    ifstream inFile1;
    ifstream inFile2;
    string inputFileName1;
    string inputFileName2;
    ofstream outputFile("merge.txt");
    cout << "1. Please enter the directory path of the first text list: " << endl;    // Open first file based on given directory path
    cin >> inputFileName1;
    inFile1.open(inputFileName1);
    cout << "2. Please enter the directory path of the second text list: " << endl;  // Repeat open file for second directory path
    cin >> inputFileName2;
    inFile2.open(inputFileName2);
    if (inFile1.is_open() && inFile2.is_open()){
    int data1;
    int data2;
    while(!inFile1.eof() && !inFile2.eof()){                // while both files haven't reached end-of-file yet
        inFile1 >> data1;        // get next number for first file
        inFile2 >> data2;
                                 // get next number for second file
        outputFile << data1 << data2;     // output each integer from files 1 and 2 to outputFile(merge.txt)
    }
    inFile1.close();
    inFile2.close();
    outputFile.close();
    } 
    else{
        cerr << "The file(s) failed to open properly.";
        exit(0);
    }
}
int main(){
    textMerge();
}
4

2 回答 2

0

我想知道为什么你已经包含了vector标题但是留下了,你应该把整个路径作为输入而不是绝对路径。还将您的 while 条件更改为

while(inFile1>>data1 && inFile2>>data2)

因为这检查读入变量是否成功,而不是文件是否已经结束。

于 2013-09-07T21:26:43.787 回答
0

您的代码没有任何问题。可能有问题的是您在运行程序时使用的文件名。请务必提供完整的文件名(包括路径)。

于 2013-09-07T19:56:28.790 回答