gpt4 book ai didi

c++ - 在 C++ 中读取 C 风格的字符串时出现错误

转载 作者:行者123 更新时间:2023-11-30 01:16:36 24 4
gpt4 key购买 nike

首先,看下面的简单代码。

int main(){
char *name;
cout << "Enter your name: ";
cin >> name;
cout << "Your name is: " << name;

return 0;
}

前面的代码给我以下错误 warning: deprecated conversion from string constant to 'char*' .
但我已经通过以下方式解决了这个问题:

const char *name;

编译代码后,出现另一个错误no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'const char*') .

之前的错误是什么原因,如何解决?

最佳答案

您还没有初始化任何可以读取字符串的内存。 char * 是一个指针,指向内存中可以读取字符串 的位置,但首先必须使用 newmalloc

但是,在 C++ 中还有另一个更好的选择:使用 std::string:

#include <string>

int main()
{
std::string name;
cout << "Enter your name: ";
cin >> name;
cout << "Your name is: " << name;

return 0;
}

如果您打算使用 c 字符串,您可以分配内存并执行如下操作:

int main()
{
char name[MAX_SIZE];
cout << "Enter your name: ";
cin.get(name, MAX_SIZE);
cout << "Your name is: " << name;

return 0;
}

(感谢 Neil Kirk 的改进)

关于c++ - 在 C++ 中读取 C 风格的字符串时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com