用C++输出四个学生的基本信息

不知道怎么回事,我这个不管是用类做还是用结构体做,它输出两个人的信息的时候都好好儿的,然后输出三个人或四个人的时候就乱了,不知道为啥。

img

源码呢?

有趣, 试试这个

    void display()
    {
        printf("学号:%d\n姓名:%s性别:%c\n出生日期:%d/%d/"
               "%d\n主修专业:%s\n奖励1:%s\n奖励2:%s\n奖励3:%s\n",
               number, name.c_str(), sex, month, day, year, major.c_str(),
               prize1.c_str(), prize2.c_str(), prize3.c_str());
    }

【以下回答由 GPT 生成】

我可以帮你解决这个问题。乱码可能是因为编码方式或者输出格式不正确导致的。下面是一些可能的解决方案:

  1. 确保你的代码文件以UTF-8编码方式保存。在C++中,可以在源文件的开头加入以下代码来指定文件编码方式:
// 指定文件编码为UTF-8
#pragma execution_character_set("utf-8")
  1. 确保你的终端或控制台支持UTF-8字符集。如果你正在使用Windows系统的命令提示符(cmd.exe),可以使用以下命令修改字符集:
chcp 65001
  1. 确保你的控制台输出流(如cout)使用正确的编码方式。你可以在输出之前,使用以下代码设置输出编码方式为UTF-8:
#include <iostream>
#include <locale>

int main() {
    // 设置输出编码方式为UTF-8
    std::wcout.imbue(std::locale("zh_CN.UTF-8"));

    // 输出学生信息
    // ...

    return 0;
}
  1. 如果你的学生信息包含中文字符,确保你正确地处理了wchar_t类型。wchar_t类型用于表示宽字符,可以处理更大范围的字符编码。在输出学生信息之前,可以使用以下代码设置输出流的宽字符支持:
#include <iostream>
#include <locale>

int main() {
    // 设置输出编码方式为UTF-8
    std::wcout.imbue(std::locale("zh_CN.UTF-8"));

    // 启用宽字符支持
    std::wcout << std::boolalpha;

    // 输出学生信息
    // ...

    return 0;
}
  1. 确保你的学生信息输入时使用了正确的输入函数。如果你使用cin来读取字符串,可以使用以下代码来指定输入编码方式为UTF-8:
#include <iostream>
#include <locale>

int main() {
    // 设置输入编码方式为UTF-8
    std::wcin.imbue(std::locale("zh_CN.UTF-8"));

    // 输入学生信息
    // ...

    return 0;
}

请根据你的具体情况尝试以上解决方案,并告诉我是否解决了问题。如果问题仍然存在,我将尽力提供进一步的帮助。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^