在变量之前放置字符串文字

时间:2016-10-23 19:23:42

标签: c windows

我正在尝试获取用户的输入并将其显示在消息框中。我遇到的问题是,在字符串之前没有'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;
}

1 个答案:

答案 0 :(得分:0)

您的环境可能会为编译过程定义_UNICODE,而MessageBox宏会扩展为MessageBoxW。尝试用以下代码替换您的代码:

MessageBoxA(NULL, input, "You wrote", MB_OK);

这明确指出您要使用ANSI版本,它将正确处理fgets()的结果。