首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >std::cin限制无法输入LPCSTR

std::cin限制无法输入LPCSTR
EN

Stack Overflow用户
提问于 2019-07-04 19:28:57
回答 1查看 136关注 0票数 0

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

代码语言:javascript
复制
LPCSTR windowName;
std::cin >> windowName;
EN

回答 1

Stack Overflow用户

发布于 2019-07-04 19:33:15

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

因此,该语句有两个问题

代码语言:javascript
复制
std::cin >> windowName;

第一种是使用未初始化的指针作为目标。第二个是指针(一旦正确初始化)指向一个不能写入或更改的常量内存区域。

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

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56886983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档