я провел как 2 часа, пытаясь разобрать следующие байты из файла:Чтение линии после того, как линия C не ++ работает
>Rosalind_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC
TCCCACTAATAATTCTGAGG
>Rosalind_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT
ATATCCATTTGTCAGCAGACACGC
>Rosalind_0808
CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC
TGGGAACCTGCGGGCAGTAGGTGGAAT
Я хотел бы сохранить слово Rosalind_ и хранить каждую строку, конкатенировать все и иметь только одну строку со всеми строками.
Я пробовал следующий код, но он все еще не работает, возможно, я всегда пропускаю последнюю строку.
int main()
{
std::ifstream infile("data_set.txt");
map < int, string > ID;
map < int, string > dataSetMap;
int idNumber= 0;
int idDataSetNumber = 0;
std::string line;
std::vector<string> dataSetString;
std::string seqid;
while (!infile.eof())
{
while(std::getline(infile, line))
{
if (line.substr(0,1)== ">")
{
conct = "";
seqid = line.substr(1,line.length() - 1);
ID.insert(make_pair(idNumber++, seqid));
lineNumber = 0;
line.clear();
std::string data= "";
if(dataSetString.size()>0)
{
for (int i = 0; i<dataSetString.size(); i++)
{
data+=dataSetString[i];
}
dataSetMap.insert(make_pair(idDataSetNumber++, data));
}
dataSetString.clear();
}
if(!line.empty())
{
dataSetString.push_back(line);
}
}
}
Я пытаюсь практиковать решения для решения проблем, и это действительно дало мне головную боль.
Я также ищу лучший подход.
Используйте отладчик, чтобы выполнить свой код, он легко выявит проблемы, подобные этим, и это облегчит эту головную боль .. обещание;) –
Чтобы получить эффективную помощь здесь, вам нужно показать результат, который вы получите, и описать, как он отличается от того, что вы ожидали. – kfsone