QuBiEngine::QuBiEngine(ifstream& dnaFile)
{
int i = 0;
while(!dnaFile.eof()) //while the file isn't at its end
{
dna.push_back(""); //creates an element
if(!dnaFile.good())//checks for failbits and other errors
{
dna[i] = "Not a valid sequence";
i++;
continue;
}
getline(dnaFile, dna[i]);
//checks to see if the character is valid ie: a, t, c, g
for(int j=0; j<dna[i].length(); j++)
{
dna[i][j] = putchar(tolower(dna[i][j]));
if((dna[i][j]!='a')||(dna[i][j]!='t')||(dna[i][j]!='c')||(dna[i][j]!='g'))
{
dna[i] = "Not a valid sequence";
i++;
break;
}
}
i++;
}
}
이것은 dnaFile ifstream
의 각 라인을 소요하고 테스트를 통과하면 그렇지 않은 경우, 벡터에 넣습니다 그러면 그것은 단지 유효하지 않은 것을 벡터에 넣을뿐입니다.
아마도'! dnaFile.eof()'를 사용하고 싶지 않을 것입니다. 또한, 그 출력을 제공하는 어떤 종류의 입력을 사용하고 있습니까? – Xymostech
@Xymostech 왜'! dnaFile.eof()'를 사용하고 싶지 않습니까? 출력이 있다고 생각하지도 않습니다. 객체를 생성하는 데 과거의 모든 것을 주석 처리했습니다. – SemicolonExpected
'getline '의 반환을 사용하는 것이 일반적으로 더 잘 작동하고 더 안정적입니다. 또한,'putchar' 함수를 호출 할 때 인쇄하고 있습니다. – Xymostech