1. 补充完整从text.txt文件读取数据后,再写入in.txt文件。
2. 完成从text.txt文件读取数据后,进行排序,再写入in.txt文件。数据量自行设定。
3. 请解决在主程序文件中加载多个头文件时,命名冲突问题。

解决方案

用随机生成函数生成数据写入文件流,

然后再读取文件流,讲数据存入 num[],排序,

将 num[] 中数据写入新文件,

不在全局打开 std 命名空间,在调用时使用 std::xxx 等方法。

代码

main.cpp

#include <iostream>
#include <string>
#include "file.hpp"
int main(int argc, const char * argv[])
{ int n; std::cin >> n; int *num = new int[n];
std::string text = "text.txt";
std::string in = "in.txt"; File f = File(text, n, num); f.randDate();
f.sortDate(); File f_ = File(in, n, num); f_.coutDate(); return ;
}

file.hpp

#ifndef file_hpp
#define file_hpp
#include <stdio.h>
#include <string>
#include <fstream>
class File{
std::string fileName; // 文件名
int n; // 数据量
int *num;public:
File(std::string fileName_, int n_, int *num_) :
fileName(fileName_), n(n_), num(num_) {} void randDate(); // 生成随机数据文件 fileName
void sortDate(); // 读取文件 fileName 中的随机序列并排序,存入 num
void coutDate(); // 将 num 中数据存储到 fileName 文件中 int random(double st, double ed); // 生成 st~ed 随机数};#endif /* file_hpp */

file.cpp

#include "file.hpp"
#include <algorithm>
#include <ctime>
#include <cstdlib>
#define S 0
#define T 1000000// 生成随机数据文件void File::randDate()
{ std::fstream fp(fileName, std::ios::out); while (!fp)
{
fp.open(fileName, std::ios::out);
} srand(unsigned(time())); int k = n; while (k--)
{
fp << random(S, T) << '\n';
} fp.close();
}// 读取数据文件,存入num,并排序void File::sortDate()
{ std::fstream fp(fileName, std::ios::in); while (!fp)
{
fp.open(fileName, std::ios::in);
} int k = ; while (fp >> num[k++]) {} std::sort(num, num + n); fp.close();
}// 将 num 中数据存入文件中void File::coutDate()
{ std::fstream fp(fileName, std::ios::out); while (!fp)
{
fp.open(fileName, std::ios::out);
} for (int i = ; i < n; i++)
{
fp << num[i] << '\n';
} fp.close();
}// 生成随机数,随机数在 st~ed 之内int File::random(double st, double ed)
{
return (int)st + (ed - st) * rand() / (RAND_MAX + 1.0);
}

C++ 面向对象: I/O对象的应用的更多相关文章

  1. sdut 上机练习8面向对象编程(对象的数组)

    上机练习8面向对象编程(对象的数组) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 利用类对象数组完毕N个学生数据(学号是字符串类型.成绩是整型)的输入 ...

  2. java基础面向对象之类与对象

    java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已 ...

  3. Perl面向对象(2):对象

    本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象销毁 第3篇依赖于第2篇,第2篇依赖于1篇. 已有的代码结构 现在有父类Animal ...

  4. JS是面向过程、面向对象还是基于对象?面向对象的代码体现

    一.问题 javascript是面向对象的,还是面向过程的?基于对象是什么意思? 对象: 指的是对某一类事物进行抽象,抽象出这一类事物共同的特征以及行为(也就是属性和方法),那些拥有这一共同属性和方法 ...

  5. Java面向对象-类与对象

    Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...

  6. php面向对象之克隆对象

    在前面的PHP面向对象之对象和引用,我们试图以"$b=$a"的方式复制对象以传递对象的值(内容),结果却是传递对象的地址,在结尾为了解决复制对象这个问题,提到了克隆的方法.接下来讲 ...

  7. Day07:常用模块,面向对象编程(对象&类)及内置函数

    今日内容:1.常用模块2.面向对象编程(*****)    介绍面向对象编程    类    对象3.内置函数------------------------------1.面向过程编程    核心“ ...

  8. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...

  9. 重学前端--js是面向对象还是基于对象?

    重学前端-面向对象 跟着winter老师一起,重新认识前端的知识框架 js面向对象或基于对象编程 以前感觉这两个在本质上没有什么区别,面向对象和基于对象都是对一个抽象的对象拥有一系列的行为和状态,本质 ...

  10. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

随机推荐

  1. ADO.NET异步操作测试

    配置文件: <?xml version="1.0"?> <configuration> <startup> <supportedRunti ...

  2. spring发布RMI服务(-)

    spring发布RMI服务 最近交流了一个项目,需要从RMI.WebService.接口文件中采集数据到大数据平台,下面自己测试了通过Spring发布RMI服务. 说明:RMI服务要求服务端和客户端都 ...

  3. loj 6083.「美团 CodeM 资格赛」数码

    题目: 给定两个整数\(l\)和\(r\),对于任意\(x\),满足\(l\leq x\leq r\),把\(x\)所有约数写下来. 对于每个写下来的数,只保留最高位的那个数码.求\([1,9]\)中 ...

  4. 超时 CS-8610 中性笔

    超时 CS-8610 中性笔 最初觉得这款笔很简单,而且还认为有点丑,因为笔头比较短. 比较特别提这款中性笔比一般的中性笔要粗一点. 使用后才发现比其它的中性笔好用,因为笔杆粗,手感好,笔杆上并没有特 ...

  5. 推荐几本学习MySQL的好书

    转载:http://mingxinglai.com/cn/2015/12/material-of-mysql/ 我这里推荐几本MySQL的好书,应该能够有效避免学习MySQL的弯路,并且达到一个不错的 ...

  6. [转]你知道用AngularJs怎么定义指令吗?--很详细

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

  7. Excel中函数row和column的特殊应用

    版本:2016,数据来源:我要自学网-曾贤志老师 row在英文中是行,排的意思,在Excel中的作用是返回所引用的行号.​   column在英文中是列,总队的意思,其作用是返回所引用的列号.   假 ...

  8. 洛谷【P1439】【模板】最长公共上升子序列

    浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  9. docker容器升级脚本

    #!/bin/bash # Let's finish it like a flash # usage:sh -x update_cms_backend.sh -v 2018050401 ARGS=`g ...

  10. jquery-post 异常

    报错:Client closed connection before receiving entire response 前端请求: $.ajax({ type : 'POST' , url : '/ ...