我有一个程序,其中变量类型之一是LPCSTR,用户需要输入,但是std :: cin在这里不能给LPCSTR值是一些代码
LPCSTR windowName;
std::cin >> windowName;
答案 0 :(得分:11)
类型LPCSTR
只是一个指针,它是const char *
的别名。
因此,该语句有两个问题
std::cin >> windowName;
首先,您将未初始化的指针用作目标。第二个是指针(一旦正确初始化)指向一个恒定内存区域,您不能对其进行写入或更改。
编译器应该抱怨第二个问题(指向恒定内存的指针),而未初始化的指针将在运行时导致未定义的行为(并可能导致崩溃)。
最简单的解决方案是为字符串使用std::string
,当您需要LPCSTR
时,只需使用c_str()
成员函数。