C++ 输出乱码问题:字符数组与字符串终止符
在您提供的示例代码中,私有数据成员'name'是一个字符数组(char array),它在类定义时被声明为'char name[32]'。然而,在C++中,字符数组不会自动添加字符串终止符'\0'(null character),这可能导致在输出时产生乱码。
为了解决这个问题,您可以在初始化'name'时添加字符串终止符'\0',或者使用字符串类'std::string'代替字符数组。以下是两种可能的解决方法:
方法1:添加字符串终止符'\0':
class person
{
private:
int age;
char name[32];
public:
person()
{
age = 0;
strcpy(name, ""); // 在name数组中添加空字符串终止符
}
void print()
{
cout << age << " " << name;
}
};
方法2:使用'std::string'代替字符数组:
#include <string>
class person
{
private:
int age;
std::string name;
public:
// 其他代码省略
};
请注意,第二种方法可能需要包含'
通过以上修改,您应该能够避免输出乱码问题并正确显示数据。
原文地址: https://www.cveoy.top/t/topic/Vdt 著作权归作者所有。请勿转载和采集!