我正在尝试获取用户的输入并将其显示在消息框中。我遇到的问题是,在字符串之前没有'L',它就像乱码一样。我的char []命名为'input'存储用户输入的字符串,但是我怎么能这样做呢?那里有'L'?到目前为止我尝试的所有内容都给了我一个错误,包括将char更改为wchar_t。
#include <stdio.h>
#include <windows.h>
int main()
{
printf("Enter message to be displayed\n");
char input[20];
fgets(input,20, stdin);
MessageBox(NULL, (LPCWSTR)input, (LPCWSTR)L"You wrote", MB_OK);
return 0;
}
答案 0 :(得分:0)
您的环境可能会为编译过程定义_UNICODE
,而MessageBox
宏会扩展为MessageBoxW
。尝试用以下代码替换您的代码:
MessageBoxA(NULL, input, "You wrote", MB_OK);
这明确指出您要使用ANSI版本,它将正确处理fgets()
的结果。