LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
这里我收到的输出计算机\ N 只是我希望输出像Computer \ Network \ Value。 为此提供解决方案..
答案 0 :(得分:3)
字符串指向Machine是一个unicode字符串,因此在字符“N”后面有一个NULL字符。因此,如果您使用非unicode字符串连接,您将获得类似的输出。你不应该混合unicode和非unicode字符串。你可以这样做:
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
答案 1 :(得分:2)
您尝试使用Unicode字符串连接ANSI字符串。那不行。要么创建第一个字符串ANSI
LPCSTR Machine="Network\\Value";
或使用MultiByteToWideChar()转换第二个。
答案 2 :(得分:0)
Pure C90:
wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));