我正在开发一个遗留代码库&遇到了一个' \\'字符:
do
{
string tmpLine;
getline( *testcaseFilePtr, tmpLine );
testcaseFileLineNumber++;
if( tmpLine.size() > 0 && tmpLine[tmpLine.size() - 1] == '\\' )
{
readAnotherLine = true;
tmpLine[tmpLine.size() - 1] = ' ';
}
else
{
readAnotherLine = false;
}
line.append( tmpLine );
} while( readAnotherLine );
正如我在gdb调试器中看到的,' readAnotherLine'总是变成虚假的,并且在一次迭代后总是退出。
假设我的输入文件如下:
DEFINE xyz;
DEFINE_MODULE
{
cout << "Example snippet" << endl;
do_this; USER_MACRO ( do_that );
}
调试器显示line
字符串一次只包含一行,并在后续步骤中处理它。它不是在line
中连接输入文件的所有行。
请建议它是否是拼写错误或它可能有一些功能。
提前感谢您的建议!
答案 0 :(得分:3)
代码在输入文件中查找行:
abc\
def\
ghi
并将它们读成一行:abc def ghi
。换句话说,尾随\
被视为行继续符。