C++ //例13.14 将一批数据以二进制形式存放在磁盘文件中。例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

C++程序设计 (第三版) 谭浩强 例13.14 例13.15

例13.14 将一批数据以二进制形式存放在磁盘文件中。

例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。

 

代码块:
说明:文件f1.txt,f2.txt都在程序源文件同目录下。
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;const int N = 3;typedef struct Student{int num;string name;int age;char gender;
}Student;void initialStu(Student **stu, int n){*stu = new Student[n];
}void inputStu(Student *stu, int n){cout<<"Enter "<<n<<" Student Info:"<<endl;for(int i = 0; i < n; i++){cout<<"Enter No."<<i + 1<<" Student Number(100 ~ 999): ";cin>>stu[i].num;while(stu[i].num < 100 || stu[i].num > 999){cout<<"Number Error! Retry!\nEnter No."<<i + 1<<" Student Number(100 ~ 999): ";cin>>stu[i].num;}fflush(stdin);cout<<"Enter No."<<i + 1<<" Student Name: ";getline(cin, stu[i].name);cout<<"Enter No."<<i + 1<<" Student Age(18 ~ 30): ";cin>>stu[i].age;while(stu[i].age < 18 || stu[i].age > 30){cout<<"Age Error! Retry!\nEnter No."<<i + 1<<" Student Age(18 ~ 30): ";cin>>stu[i].age;}cout<<"Enter No."<<i + 1<<" Student Gender(M or F): ";cin>>stu[i].gender;while(stu[i].gender != 'M' && stu[i].gender != 'F'){cout<<"Gender Error! Retry!\nEnter No."<<i + 1<<" Student Gender(M or F): ";cin>>stu[i].gender;}cout<<endl;}cout<<endl;
}void freeStu(Student **stu){delete []*stu;
}void inputFile(char *name, Student *stu, int n){ofstream outfile(name, ios::binary);if(!outfile){cerr<<"Open File "<<name<<" Error!"<<endl;system("pause");exit(0);}for(int i = 0; i < n; i++){outfile.write((char*)&stu[i], sizeof(Student));}outfile.close();
}void outputFile(char *name, Student *stu, int n){ifstream infile(name, ios::binary);if(!infile){cerr<<"Open File "<<name<<" Error!"<<endl;system("pause");exit(0);}for(int i = 0; i < n; i++){infile.read((char*)&stu[i], sizeof(Student));}infile.close();cout<<"Student Info:"<<endl;for(int i = 0; i < n; i++){cout<<setiosflags(ios::left);cout<<"Number: "<<setw(3)<<stu[i].num<<" Name: "<<setw(10)<<stu[i].name<<" Age: "<<setw(2)<<stu[i].age<<" Gender: "<<setw(1)<<stu[i].gender<<endl;}cout<<endl;
}int main(){Student *stu = NULL;initialStu(&stu, N);inputStu(stu, N);inputFile("f1.txt", stu, N);outputFile("f1.txt", stu, N);freeStu(&stu);system("pause");return 0;
}
结果显示如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于windows条件下pytorch使用torch.utils.data.DataLoader的numworkers值的确定

numworkers指的是进行数据集加载时使用的线程数量。如果设置为0就是使用单线程进行加载。最保险的方法就是将numworkers直接设置为0&#xff0c;这样在Windows条件下可以保证运行&#xff0c;但是可能速度会降低一些。 造成bug的原因&#xff1a;因为在Windows系统上&#xff0…

Zookeeper之快速入门

前言 本篇文章主要还是让人快速上手入门&#xff0c;想要深入的话可以通过书籍系统的学习。 简介 是什么 可用于协调、构建分布式应用。 本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储&#xff0c;并且可以对树中的节点进行有效管理…

AI产品经理-借力

AI产品经理-借力&#xff1a;学会善用供应商改造自有产品 1.整个项目的工作方法 2.项目启动-行业调研 3.项目启动-供应商选型

喜讯|极狐GitLab 通过信通院汽车软件研发效能成熟度模型能力

12 月 27 日&#xff0c;在由中国信息通信研究院&#xff08;下称信通院&#xff09;、中国通信标准化协会联合主办的2023系统稳定性与精益软件工程大会-汽车云质效专场峰会上&#xff0c;信通院发布了“2023年下半年汽车云评估结果”&#xff0c;极狐GitLab 一体化 DevOps 平台…

centos7 使用openssl 配置证书服务器(史上最详细版本)

背景 最近接到一个任务&#xff1a;由于我们的产品涉及使用数字证书进行签名、签章&#xff0c;如果需要使得签名签章暗具有法律效力&#xff0c;就必须使用权威CA中心颁发的数字证书&#xff0c;就需要小钱钱&#xff1b;但是对于测试来说&#xff0c;就可以适当减少小钱钱的…

每日一练 | 华为认证真题练习Day35

Day35 华为认证中级考试真题 1、下列关于华为eSight网管软件的描述&#xff0c;错误的是&#xff1a; A.向导式安装&#xff0c;轻量级系统 B.采用C/S架构&#xff0c;可以直接使用浏览器随时随地的访问网络 C.面向不同的客户提供相应的解决方案 D.支持对多厂商设备进行统…

2023 年中国高校大数据挑战赛赛题B DNA 存储中的序列聚类与比对-解析与参考代码

题目背景&#xff1a;目前往往需要对测序后的序列进行聚类与比对。其中聚类指的是将测序序列聚类以判断原始序列有多少条&#xff0c;聚类后相同类的序列定义为一个簇。比对则是指在聚类基础上对一个簇内的序列进行比对进而输出一条最有 可能的正确序列。通过聚类与比对将会极大…

stata回归结果输出中,R方和F值到底是用来干嘛的?

先直接回答问题&#xff0c;R方表示可决系数&#xff0c;反映模型的拟合优度&#xff0c;也就是模型的解释能力如何&#xff0c;也可以理解为模型中的各个解释变量联合起来能够在多大程度上解释被解释变量&#xff1b;F值用于模型整体的统计显著性&#xff0c;对应的P值越小&am…

代码随想录刷题笔记(DAY2)

今日总结&#xff1a;今天在学 vue 做项目&#xff0c;学校还有很多作业要完成&#xff0c;熬到现在写完了三道题&#xff0c;有点太晚了&#xff0c;最后一道题的题解明天早起补上。&#xff08;补上了&#xff09; Day 2 01. 有序数组的平方&#xff08;No. 977&#xff09;…

力扣:968. 监控二叉树(贪心,二叉树)

题目&#xff1a; 给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1&#xff1a; 输入&#xff1a;[0,0,null,0,0] 输出&#xff1a;1 解释&…

关于Java和JavaScript下载文件的小tip

简介 最近遇到一个下载文件的需求&#xff0c;因为文件不在本系统&#xff0c;可以直接请求远程的加载接口&#xff0c;不想通过本系统的后端再转一次。 于是就想通过前端JavaScript直接下载。 下面介绍2种方式。 通过模拟form表单提交 function downloadRemoteFile(url,m…

AIGC时代下,结合ChatGPT谈谈儿童教育

引言 都2024年了&#xff0c;谈到儿童教育&#xff0c;各位有什么新奇的想法嘛 我觉得第一要务&#xff0c;要注重习惯养成&#xff0c;我觉得聊习惯养成这件事情范围有点太大了&#xff0c;我想把习惯归纳于底层逻辑&#xff0c;我们大家都知道&#xff0c;在中国式教育下&a…

PHP之——函数的使用

<?php自定义函数&#xff1a; 将课重复使用的代码用指定函数名的函数封装起来&#xff0c;使用函数名调用,函数名不能重复&#xff0c;函数名不区分大小写&#xff0c; 函数的声明的时候传的参数是形参&#xff0c;没有具体值&#xff1b;当函数调用的使用传递参数&#x…

类上单例的写法

#region 单例private static T _instance;public static T Instace{get{if (_instance null){_instance FindObjectOfType<T>();}return _instance;}}#endregion

Java ThreadLocal 源码解析

前言 ThreadLocal 是 Java 语言中的一个类&#xff0c;可以使用它为每个线程存储数据。这些数据只能被当前线程访问&#xff0c;而其他线程无法访问。这个类可以用于避免多次传递、线程间数据隔离、事务操作等场景。 本次源码分析基于 JDK 21.0.1。 ThreadLocal 使用简介 基…

vue-cli3/webpack打包时去掉console.log调试信息

文章目录 前言一、terser-webpack-plugin是什么&#xff1f;二、使用配置vue-cli项目 前言 开发环境下&#xff0c;console.log调试信息&#xff0c;有助于我们找到错误&#xff0c;但在生产环境&#xff0c;不需要console.log打印调试信息&#xff0c;所以打包时需要将consol…

servlet+jdbc实现用户注册功能

一、需求 在Servlet中可以使用JDBC技术访问数据库&#xff0c;常见功能如下&#xff1a; 查询DB数据&#xff0c;然后生成显示页面&#xff0c;例如&#xff1a;列表显示功能。接收请求参数&#xff0c;然后对DB操作&#xff0c;例如&#xff1a;注册、登录、修改密码等功能。…

前端基本性能指标及lighthouse使用

文章目录 1、基本指标介绍2、Performace分析2.1 performance属性2.2 使用performace计算2.3 Resource Timing API2.4 不重复的耗时时段区分2.5 其他组合分析2.6 JS 总加载耗时2.7 CSS 总加载耗时 3、lighthouse基本使用3.1 使用Chrome插件lighthouse3.2 使用Chrome浏览器开发者…

【操作系统】测试四

文章目录 单选题填空题 单选题 在一个可变分区存储管理中&#xff0c;最佳适应算法是将空闲区表中的空闲区按【 正确答案: C】的次序排列。 A. 地址递增 B. 地址递减 C. 大小递增 D. 大小递减 动态重定位是在【 正确答案: B】进行的重定位。 A. 作业执行前 B. 作业执行过程中 …

【黄啊码】宝塔设置默认php版本无效?

宝塔面板切换默认PHP版本1.情形描述&#xff1a; 我在执行composer install 时提示PHP版本太低&#xff0c;查看了一下宝塔面板的PHP版本&#xff0c;发现有两个一个5.6一个7.3。虽然php5.6版本已经暂停了&#xff0c;但是执行composer install还是提示版本太低。 然后根据网…