如何比较两个文件夹中文件名相同的文件,并将其输出来。最好输出到文档中。用c语言或c++

sorry.一个是文档,一个是文件夹。
其实这样的,A是文档,里面只是文件名字的列表,比如
A:
a.txt
b.txt
...
而B 是个文件夹,里面包含A文档中的一些文件。
我是要,在B文件夹中找到A文档中提到的文件,并将B文件夹中相应的文件输出来。

第1个回答  推荐于2016-08-20
//假设A.txt和B文件在同一目录
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    ifstream in_file("A.txt");
    if (!in_file)
        return 0;
    string file_name;
    while (getline(in_file, file_name))
    {
        string file_path = "./B/" + file_name;
        ifstream out_file(file_path.c_str());
        if (out_file)
        {
            cout << file_name << " : " << endl;
            string file_line;
            while (getline(out_file, file_line))
                cout << file_line << endl;
         }
        out_file.close();
    }

    return 0;
}

追问

为什么没有输出呢,processing return 0

A文档中的文件名在B文件夹中有三个都有出现?而且,并不是将结果输出屏幕,而是B文件夹中对应名字的文件输出来。最好输出到另一个文件夹中

追答

文件是有后缀名的,比如test1.txt和test1是不同的2个文件,你设置了电脑不显示后缀名。
B文件里面的test1实际上是test1.txt,所以A里面要写成test1.txt

追问

如何把找到的文件copy到另一个文件夹中?

本回答被提问者采纳
第2个回答  2014-12-15

既然A已经按行排好 楼主你就按行读入  测试是否打开成功   成功则输出 否则检查下一个文件名

伪代码如下:

char x[100];
FILE A=fopen(A);
FILE B;
while(A文件中还有文件名没有读入)
{
    x=读入的文件名;
    B=fopen("B//x");
    if(!B)
        continue;
    else
        输出相应文件
}

追问

谢谢,但是怎么讲找到的文件同时输出到某个文件夹中呢

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网