未知' \\' C ++中的字符

时间:2016-12-27 08:29:33

标签: c++ escaping

我正在开发一个遗留代码库&遇到了一个' \\'字符:

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中连接输入文件的所有行。 请建议它是否是拼写错误或它可能有一些功能。

提前感谢您的建议!

1 个答案:

答案 0 :(得分:3)

代码在输入文件中查找行:

abc\
def\
ghi

并将它们读成一行:abc def ghi。换句话说,尾随\被视为行继续符。