为什么MSVC编译器会转换" ?? - "序列到"〜"在字符串文字?

时间:2014-04-15 11:55:51

标签: c++ string visual-c++ trigraphs

我的代码中有一个硬编码字符串(应该用作文件掩码),但编译器总是更改" ?? - "序列到"〜",例如:

const wchar_t textW[] = L"test-??-??-??.txt";

testW将是" test- ~~ ??。txt" (没有引号)。

对于非unicode字符串也是如此:

const char textA[] = "test-????-??-??.txt";

textA将是" test - ?? ~~ ??。txt" (没有引号)。

我的编译器是Microsoft Visual C ++ 2008。

我刚刚尝试使用Visual Studio 2013,运行时的字符串是正确的,当我跟踪应用程序时,intellisense在工具提示上显示正确的值,但是......但是在写入模式下(当应用程序时)不运行)intellisense在工具提示上显示错误的tildas值。

1 个答案:

答案 0 :(得分:2)

它被称为trigraph。它们被预处理器取代。