C++ 同步文件,删除相同的数据

C++ 同步文件,删除相同的数据,c++,linux,file,sync,C++,Linux,File,Sync,我有两个文件 A.txt 1 2 3 B.txt 1234 我想删除那些同时出现在A.txt和B.txt中的数据。 因此,输出应为: C.txt 四, 你可以通过以下步骤来存档: 1加载A.txt int setA std::set<std::string> setA; 4去掉setA中的公共数据 std::set<std::string> setDA; set_difference(setA.begin(), setA.end(), se

我有两个文件 A.txt

1 2 3

B.txt

1234

我想删除那些同时出现在A.txt和B.txt中的数据。 因此,输出应为: C.txt

四,


<如何通过C++或Linux机器来实现这一点?

< p>你可以通过以下步骤来存档:

1加载A.txt int setA

std::set<std::string> setA;
4去掉setA中的公共数据

std::set<std::string> setDA;
set_difference(setA.begin(), setA.end(),
               setC.begin(), setC.end(),
               setDA);

// write content of setDA back to file A
5对setB执行相同的操作,并将其写回文件B

comm-3 a.txt b.txt


-3用于取消显示在两个文件中的行。

sort a.txt b.txt | uniq-usresolved非常感谢后续问题。如何将数据读取到集合字符串?我知道一些简单的命令,比如string temp;getlineFilehd,temp;但是我可以将整个文件读入一组字符串吗?如果您知道getline,那么您可以将每一行插入到集合中。@sflee不客气!
setC = set_intersection(setA.begin(), setA.end(),
                        setB.begin(), setB.end(),
                        setC);
std::set<std::string> setDA;
set_difference(setA.begin(), setA.end(),
               setC.begin(), setC.end(),
               setDA);

// write content of setDA back to file A