繁体   English   中英

std :: cin限制无法输入LPCSTR

[英]std::cin limitations can't input LPCSTR

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

LPCSTR windowName;
std::cin >> windowName;

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

所以你的陈述有两个问题

std::cin >> windowName;

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

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM