gpt4 book ai didi

c++ - 比较 2 个文本文件

转载 作者:行者123 更新时间:2023-11-30 04:11:17 25 4
gpt4 key购买 nike

我一直在编写代码,但遇到了问题。

我有 2 个文本文件 .txt,看起来像这样:

文件编号1(法斯塔)

DOJHLOP01DWJWJ 
TCGATTCTATGGAGGGATGCTGGCAAGGCTCCGGAAGCAGCATCAGCAATTAAAAAAT
DOJHLOP01C1GFF
TTTACACAGTTGCAAGCCCTGAAGCTTGTGCTTCGATTCTATGGAGGGATGCTGGCAA
DOJHLOP01CAI84
AGGCGTCGCAGACAGGTTACTTATGTTTGAACATAGTGTTTACACAGTTGCAAGCCCT

文件编号2(质量)

DOJHLOP01DWJWJ 
32 31 29 26 30 27 32 32 31 30 28 26 26 28 27 19 26 31 24 32 31 30 25 25 29
DOJHLOP01C1GFF
28 28 16 26 31 32 31 28 32 31 27 30 31 29 23 32 29 28 16 31 31 29 24 32 31
DOJHLOP01CAI84
31 30 25 30 27 24 31 31 31 32 32 31 30 24 27 21 31 27 32 31 30 25 25 28 31

正如 ypu 所见,每 2 行都是相同的,因此我想获取包含等效行的输出文件,这些行是不同的,即。

TCGATTCTATGGAGGGATGCTGGCAAGGCTCCGGAAGCAGCATCAGCAATTAAAAAAT
32 31 29 26 30 27 32 32 31 30 28 26 26 28 27 19 26 31 24 32 31 30 25 25 29

我已经使用 vector 编写了代码,但是出了点问题,因为我得到一个空白文件作为输出。请帮帮我!

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
string fasta,qual;
vector <string> v1,v2;
ifstream file;
fstream out_file;
int i;

cout <<"insert the name of fasta file"<<endl;
cin>>fasta;
cout<<"instert the name of qual file"<<endl;
cin>>qual;

file.open(fasta.c_str(),ifstream::in);
while(getline(file,fasta))
{
v1.push_back(fasta);
}
file.close();

file.open(qual.c_str(),ifstream::in);
while(getline(file,qual))
{
v2.push_back(qual);
}
file.close();

out_file.open ("out_file.txt");

for(i=0;i<v1.size();i++) //assuming the qual and fasta have the same numer of lines
{
if(v1[i]!=v2[i]) //if two lines are different
{
out_file<<v1[i]; //write this line into the out_file
out_file<<'\n';
out_file<<v2[i]; //write this line into the out_file
out_file<<'\n';
}

}

out_file.close();

return 0;
}

非常感谢您的帮助!

最佳答案

更改fstream out_file;ofstream out_file;

关于c++ - 比较 2 个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com