C++ std::cin 未处理的异常:访问冲突写入位置

发布于 2024-11-19 02:58:57 字数 276 浏览 10 评论 0原文

我在尝试使用 std::cin 时遇到访问冲突。我正在使用 char*,但它不允许我输入数据。

void Input(){
while(true){
    char* _input = "";
    std::cin >> _input; //Error appears when this is reached..
    std::cout << _input;
    //Send(_input);

I'm getting an access violation when trying to use std::cin. I'm using a char* and it's not allowing me to input my data.

void Input(){
while(true){
    char* _input = "";
    std::cin >> _input; //Error appears when this is reached..
    std::cout << _input;
    //Send(_input);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暖树树初阳… 2024-11-26 02:58:57

您没有为 cin 提供用于存储数据的缓冲区。

operator>>(std::istream&, std::string) 将为正在读取的字符串分配存储空间,但您使用的是 operator>>(std::istream&) , char*) 写入调用者提供的缓冲区,并且您没有提供可写缓冲区(字符串文字不可写),因此您遇到了访问冲突。

You didn't provide a buffer for cin to store the data into.

operator>>(std::istream&, std::string) will allocate storage for the string being read, but you're using operator>>(std::istream&, char*) which writes to a caller-provided buffer, and you didn't provide a writable buffer (string literals are not writable), so you got an access violation.

最舍不得你 2024-11-26 02:58:57
char* _input = ""; // note: it's deprecated; should have been "const char*"

_input 是指向字符串文字的指针。输入它是一种未定义的行为。
要么使用

char _input[SIZE]; // SIZE declared by you to hold the enough characters

std::string _input;
char* _input = ""; // note: it's deprecated; should have been "const char*"

_input is pointer pointing to a string literal. Inputting into it is an undefined behavior.
Either use

char _input[SIZE]; // SIZE declared by you to hold the enough characters

or

std::string _input;
小嗷兮 2024-11-26 02:58:57

试试这个:

char _input[1024];
std::cin >> _input;
std::cout << _input;

或者更好:

std::string _input;
std::cin >> _input;
std::cout << _input;

Try this:

char _input[1024];
std::cin >> _input;
std::cout << _input;

Or better:

std::string _input;
std::cin >> _input;
std::cout << _input;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文