错误C2308:连接不匹配的字符串

Abh*_*jit 4 c c++ windows unicode visual-c++

在尝试在Visual Studio 2010中的rosettacode中编译C中Maze Generator/Solver时,我在编译期间遇到问题.

以下行

#   define SPC "?"
wchar_t glyph[] = L""SPC"???????????????"SPC"?????? ??? ?";
Run Code Online (Sandbox Code Playgroud)

抛出一个错误

1>d:\projects\maze_cpp\maze_cpp\main.cpp(14): error C2308: concatenating mismatched strings
1>          Concatenating wide "" with narrow "?????? ??? ?"
Run Code Online (Sandbox Code Playgroud)

考虑到我对Unicode的有限知识,以及对MSDN中错误的不友好描述,我对这个问题以及如何解决它感到困惑

hmj*_*mjd 6

你需要"在宽字符串文字中转义s:

wchar_t glyph[] = L"\"SPC\"¦¦¦-++¦-+++---+\"SPC\"?????? ??? ?"; 
Run Code Online (Sandbox Code Playgroud)

编辑:

我错过了SPC宏(已经由Luchian和jrok发布):

#define SPC L"  "
wchar_t glyph[] = L"" SPC L"¦¦¦-++¦-+++---+" SPC L"?????? ??? ?";
Run Code Online (Sandbox Code Playgroud)