我花如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