std :: cin限制无法输入LPCSTR

时间:2019-07-04 11:28:56

标签: c++

我有一个程序,其中变量类型之一是LPCSTR,用户需要输入,但是std :: cin在这里不能给LPCSTR值是一些代码

LPCSTR windowName;
std::cin >> windowName;

1 个答案:

答案 0 :(得分:11)

类型LPCSTR只是一个指针,它是const char *的别名。

因此,该语句有两个问题

std::cin >> windowName;

首先,您将未初始化的指针用作目标。第二个是指针(一旦正确初始化)指向一个恒定内存区域,您不能对其进行写入或更改。

编译器应该抱怨第二个问题(指向恒定内存的指针),而未初始化的指针将在运行时导致未定义的行为(并可能导致崩溃)。


最简单的解决方案是为字符串使用std::string,当您需要LPCSTR时,只需使用c_str()成员函数。