在您提供的示例代码中,私有数据成员'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:
    // 其他代码省略
};

请注意,第二种方法可能需要包含''头文件,并且您的编译器需要支持C++标准库。

通过以上修改,您应该能够避免输出乱码问题并正确显示数据。

C++ 输出乱码问题:字符数组与字符串终止符

原文地址: https://www.cveoy.top/t/topic/Vdt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录