【发布时间】:2014-04-15 11:55:51
【问题描述】:
我的代码中有一个硬编码字符串(应该用作文件掩码),但编译器总是将“??-”序列更改为“~”,例如:
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 上尝试过,运行时的字符串是正确的,并且当我跟踪应用程序时,智能感知在工具提示上显示正确的值,但是......但是在写作模式下(当应用程序不是t running) intellisense 在工具提示上使用 tildas 显示不正确的值。
【问题讨论】:
-
谢谢,完全忘记了三元组。
-
大多数人都这样做,这很不常见,但仍受支持。
标签: c++ string visual-c++ trigraphs