gpt4 book ai didi

c++ - 不兼容的转换字符

转载 作者:行者123 更新时间:2023-11-28 00:19:48 24 4
gpt4 key购买 nike

我的代码有一个小问题,由于未知原因,编译器弹出两个错误,使我无法编译以下代码。我收到的通知是:

多字符字符常量[-Wmultichar]

将“int”分配给 char[4] 时类型不兼容;

这很奇怪,因为我将 char 值分配给 char 变量。我究竟做错了什么 ?

 #include <iostream> 
using namespace std;

class People
{
public:
int age;
char name[4];
};

int main()
{
People arrayP[5] = {{"Paul", 29}, {"Sue", 31},
{"Jack", 22}, {"Nil", 32}};

arraP[4].name = 'Ope';

for(int i=0; i<5; i++)
{
cout <<"Name: " << arrayP.name[i] << ", " << arrayP.age[i]<<endl
}
return 0;
}

最佳答案

你有两个错误:

  • 如果您使用 aggregate initialization您必须遵守类定义的相同布局。所以 {"Paul", 29} 是不正确的,而 {29, "Paul"} 是。

  • char name[4] 太短,无法包含 "Paul",因为没有空间容纳 NUL 终止符。由于您在 C++ 中工作,只需使用 std::string,没有任何借口。

关于c++ - 不兼容的转换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28075017/

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