如何使用矢量将两个或多个流合并到另一个或一个文件中

How to merge two or more streams in another or in a file using vectors?

本文关键字:合并 文件 一个 另一个 两个 何使用      更新时间:2023-10-16

我直接回答这个问题。我通过逐行读取文件,然后合并字符串来实现,但需要很好的解释如何使用向量。我的目标是使用系统命令(Windows XP,7)检查目录内容,并将其直接发送到"vector sysoutp"(例如),然后将其与第二个文件中的信息合并到新文件中。有什么想法吗?

举个例子,我的代码的一部分:

while (getline(myinputfile, line))
    {
        lines++;
        found = line.find(countchars);
        if (found!=string::npos)
        {
            line.erase(int(found) + 4);
            myoutputfile << line << endl;
        }
    }

当myinputfile中填充了"syscomm"时,其想法是用矢量进行转换,但显然,当我尝试执行类似getline(cin, tmp)的操作时,"cin"是syscomm,什么都没有发生(好吧,弹出错误):(

此外,我有和一个错误,当使用这个预处理器指令

#define syscomm system("dir /b | find /i /v ".exe .txt"):

createlist.cpp|15|warning: missing terminating " character [enabled by default]|
createlist.cpp|53|error: missing terminating " character|
createlist.cpp||In function 'int main()':|
createlist.cpp|53|error: request for member 'exe' in '"dir /b | find /i /v "', which is of non-class type 'const char [21]'|
||=== Build finished: 2 errors, 1 warnings ===|

它可以在不添加"|find…"的情况下工作,但使用它我可以用已知的扩展名过滤不需要的文件名。

感谢合作,对二合一问题包表示歉意:)

再次检查#define。。。

#define syscomm system("dir /b | find /i /v ".exe .txt")
// String starts here -^                    ^
// String ends here ------------------------'

如果它有语法着色,那么它应该在编辑器中非常可见。