我有一個代碼如下。每當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換行符。 (也不喜歡Linux的Windows)@AndyProwl它可能是'「$ Nodes \ r」' –
我想這是你的答案:http://stackoverflow.com/a/8960119/112968 – knittl