를 실행하지 않을 경우 위의 코드에서한 다른 문이 아래
if(transition == *(vec.end()-1)) { //vec contains the ASCI code
vec.pop_back();
--vec_index;
result.append(vec[vec_index]);
} else if(colors.find(modified.substr(1)) == colors.end()) {
cout << result << endl;
cout << "\033[0;37m";
cerr << "**ERROR: INVALID CLOSING COLOR TAG ON LINE: "
//cerr << "**ERROR: OVERLAPPING CLOSING COLOR TAG ON LINE: "
<< nlines << endl;
exit(0);
} else {
cout << result << endl;
cout << "\033[0;37m";
cerr << "**ERROR: INVALID CLOSING COLOR TAG ON LINE: "
//cerr << "**ERROR: OVERLAPPING CLOSING COLOR TAG ON LINE: "
<< nlines << endl;
exit(0);
}
와 나는 문제가 발생하고있는 부분입니다, 내 다른-경우 문은 전혀 실행하지 않는 것 같습니다. 내가 뭘하려고하면 수정 된.substr (1)지도에서 찾을 수없는 경우 그렇지 않으면 첫 번째 오류를 인쇄합니다 (색상 문자열은지도에 있지만 그것은 벡터의 마지막 것과 동일하지 않습니다) 인쇄 "else"오류. 그러나 제 경우는 항상 인쇄하고 있습니다. 왜 modified.substr (1)이 된 이유는 수정 된 (이 경우) a /로 시작하기 때문입니다. 코드 vec
에서
우리에게 더 많은 코드를 제공하십시오 -'vec','modified' (그리고 아마 다른 것들)는 비어 있습니다. –