forestelk 2018-12-06 15:39 采纳率: 50%
浏览 571

求大佬帮忙看看谢谢感激不尽

#include <fstream>
#include<iostream>
using namespace std;

struct Student          // 学生结构
{
    int num;        // 学号
    char name[16];      // 姓名
    float score1;
    float score2;
    float score3;    // 成绩
};

int main(void)          // 主函数main()
{
#pragma region (0)将它们存储在磁盘文件中;
    Student stu[3] = { {2009101, "李靖", 98,89,56}, {2009102, "刘敏", 100,23,25},{2009103, "王强", 99,56,89} };   // 定义数组

    fstream f("stu.dat", ios::out | ios::binary);// 定义文件对象,这样如果文件不存储将建立一个空文件
    if (f.fail())        // 打开文件失败
    {
        cout << "打开文件失败!" << endl;
        exit(1);        // 退出程序
    }
    for (int i = 0; i < 3; i++)
        f.write((char *)&stu[i], sizeof(stu));// 写数据到文件中
    f.seekp(0 * sizeof(Student), ios::beg);  // 定位于第1个学生数据的起始位置
    for (int i = 0; i < 3; i++)
    {
        cout << stu[i].name << " " << stu[i].name << " " << stu[i].score1 << " " << stu[i].score2 << " " << stu[i].score3
            << endl;    // 显示学生信息
    }
    system("pause");
    cout << endl;
    f.close();// 关闭文件

为什么从记事本打开就是乱码啊,notepad也是。

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-12-06 15:43
    关注

    乱码很正常,因为你是二进制方式写入的文件。
    比如你的score,98,存储的并非ascii的'9'和'8',而是一个浮点数,所以记事本打开看到的是乱码。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题