fork(1) download
  1. #include <map>
  2. #include <vector>
  3. #include <string>
  4. #include <iostream>
  5. #include <fstream>
  6.  
  7. int main()
  8. {
  9. std::istream& infile = std::cin;
  10. std::map < int, std::string > ID;
  11. std::map < int, std::string > dataSetMap;
  12. int idNumber= 0;
  13. int idDataSetNumber = 0;
  14.  
  15. std::string line;
  16. std::vector<std::string> dataSetString;
  17. std::string seqid;
  18.  
  19. bool success = std::getline(infile, line);
  20. while(success) {
  21. if( line.substr(0,1) == ">" ) {
  22. seqid = line.substr(1,line.length() - 1);
  23. ID.insert(make_pair( idNumber++, seqid));
  24. std::string data;
  25. while(success = std::getline(infile, line)) {
  26. if(line.substr(0,1) == ">") break;
  27. data += line;
  28. }
  29. dataSetMap.insert(make_pair(idDataSetNumber++, data));
  30. } else {
  31. std::cout << "Invalid input file. It needs to start with >SOME_ID" << std::endl;
  32. return 1;
  33. }
  34. }
  35.  
  36. std::cout << "Parsed data ----------------" << std::endl;
  37. for(std::map<int,std::string>::const_iterator it = dataSetMap.begin(); it != dataSetMap.end(); ++it) {
  38. std::cout << "Id: " << ID[it->first] << std::endl;
  39. std::cout << (it->second) << std::endl;
  40. }
  41. }
  42.  
Success #stdin #stdout 0s 2996KB
stdin
>Rosalind_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC
TCCCACTAATAATTCTGAGG
>Rosalind_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT
ATATCCATTTGTCAGCAGACACGC
>Rosalind_0808
CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC
TGGGAACCTGCGGGCAGTAGGTGGAAT
stdout
Parsed data ----------------
Id: Rosalind_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCCTCCCACTAATAATTCTGAGG
Id: Rosalind_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCTATATCCATTTGTCAGCAGACACGC
Id: Rosalind_0808
CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGACTGGGAACCTGCGGGCAGTAGGTGGAAT