아래와 같은 코드가 있습니다. temps = $Nodes
루프가 종료되어야합니다. 반복에서 매번 temps
을 확인하고 예상대로 temps = $Nodes
을 보았지만 루프가 종료되지 않았습니다. 이 코드는 VS10에서 작동했지만 Linux에서는 작동하지 않습니다. 어떤 생각?문자열 비교가 작동하지 않습니다.
std::string temps;
s_mesh_file.open (mesh_file.c_str());
do
{
getline (s_mesh_file, temps);
std::cout << "temps: " << temps << std::endl;
std::cin.ignore();
}
while (temps != "$Nodes");
아마도 'temps' 끝에 끝에 공백이 몇 개 포함될 수 있습니까? 그래서 당신은 "$ Nodes"를 보았습니다 만 실제로는 "$ Nodes"입니다. –
동일한 입력 파일을 사용하고 있습니까? Windows 개행 문자 포함? 리눅스는 윈도우 뉴 라인을 좋아하지 않는다. (Linux 같은 Windows도 마찬가지입니다.) @AndyProwl 아마''$ Nodes \ r "' –
내 대답은 다음과 같습니다. http://stackoverflow.com/a/8960119/112968 – knittl