c语言建立两个磁盘文件,建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作...
1)从键盘输入20个整数,分别存放在两个磁盘文件中,每个文件中放10个整数
2)从f1.dat读入10个数,然后存放在f2.dat文件原有数据后面
3)从f2.dat中读入20个整数,对它们进行从小到大的顺序存放在f2.dat中(不保留原来的数据)
#include
#include
#include
using namespace std;
//fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中
void fun1()
{
int a[10];
ofstream outfile1("f1.dat"),outfile2("f2.dat"); //分别建立两个文件流对象
if(!outfile1)
{
cerr << "open f1.dat error!" << endl;
exit(1);
}
if(!outfile2)
{
cerr << "open f2.dat error!" << endl;
exit(1);
}
cout << "enter 10 integer numbers:" << endl;
for (int i=0;i<10;i++) //输入10个数存放在f1.dat文件中
{
cin >> a[i];
outfile1 << a[i] << " ";
}
cout << "enter 10 integer numbers:" << endl;
for (int i=0;i<10;i++) //输入10个数存放在f2.dat文件中
{
cin >> a[i];
outfile2 << a[i] << " ";
}
outfile1.close();
outfile2.close();
}
//从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面
void fun2()
{
ifstream infile("f1.dat"); //f1.dat作为输入文件
if(!infile)
{
cerr << "open f1.dat error!" << endl;
exit(1);
}
ofstream outfile("f2.dat",ios::app); //f2.dat作为输出文件,文件指针指向文件尾,向它写入的数据放在原来数据的后面
if (!outfile)
{
cerr << "open f2.dat error!" << endl;
exit(1);
}
int a;
for (int i=0;i<10;i++)
{
infile >> a; //从磁盘文件f2.dat读入一个整数
outfile << a << " "; //将该读数存放到f2.dat中
}
infile.close();
outfile.close();
}
//从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat中
void fun3()
{
ifstream infile("f2.dat");
if(!infile)
{
cerr << "open f2.dat error!" << endl;
exit(1);
}
int a[20];
int i,j,t;
for (i=0;i<20;i++)
infile >> a[i];
for (i=0;i<19;i++) //冒泡法
for (j=0;j<19-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
infile.close();
ofstream outfile("f2.dat",ios::out);
//f2.dat作为输出文件,文件中原有内容删除
if(!outfile)
{
cerr << "open f2.dat error!" << endl;
exit(1);
}
cout << "data in f2.dat:" << endl;
for (i=0;i<20;i++)
{
outfile << a[i] << " ";
cout << a[i] << " ";
}
cout << endl;
outfile.close();
}
int main()
{
fun1();
fun2();
fun3();
cout << "Hello world!" << endl;
return 0;
}
在Code::Blocks运行,参考谭浩强C++程序设计。
c语言建立两个磁盘文件,建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作...相关推荐
- 建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作
1)从键盘输入20个整数,分别存放在两个磁盘文件中,每个文件中放10个整数 2)从f1.dat读入10个数,然后存放在f2.dat文件原有数据后面 3)从f2.dat中读入20个整数,对它们进行从小到 ...
- SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等
SQLServer:GUI方式.SQL语句两种方式建立视图和GUI方式设置主键.约束等 目录 题目要求 解题流程 (1).建立视图 (2)GUI方式设置主键.约束等 题目要求 基于表DEPT01和 ...
- 建立局域网计算机应安装,两台电脑如何建立局域网
原标题:两台电脑如何建立局域网 两台计算机如何建立局域网?电脑里没有网络,附近也没有U盘.在两台计算机之前传送数据是困难的.如果你知道如何在两台计算机之间建立局域网,你就可以避免这种问题.我已经为你整 ...
- 两种方式建立Vsftpd虚拟用户
http://blog.51cto.com/yuanbin/129071 两种方式建立Vsftpd虚拟用户 我们登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使 ...
- Google Earth Engine—ETOPO1是一个1弧分的地球表面全球浮雕模型,整合了陆地地形和海洋测深。它是由许多全球和区域数据集建立的。它包含两个高程带:冰面和基岩。
ETOPO1 is a 1 arc-minute global relief model of Earth's surface that integrates land topography and ...
- 怎样调试计算机组成局域网,如何让两台电脑建立局域网?只要一根网线就可以做到,看后明白...
如果有两台电脑,如何给两台电脑建立局域网呢?看了下面的方法就明白了. 1.买一根对联网线.接法按照:一头568a,一头568b的网线接法.长度根据实际需要进行. 2.将同一条网线分别接在电脑的网卡上, ...
- html本地站点建立代码,实验目的通过编写一小网页熟练HTML语言书写方法;学会建立本地站点.doc...
实验目的通过编写一小网页熟练HTML语言书写方法:学会建立本地站点.doc 实验一 HTML标记语言 一.实验目的:1.标记符 标记符又称标签,HTML是影响网页内容显示格式的标记符集合,浏览器根据标 ...
- c语言两个线性表la lb,有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合...
<有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合>由会员分享,可在线阅读,更多相关<有两个集合用两个线性表LA和LB表示即线性表中的数据元 ...
- c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...
[判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...
最新文章
- 字符流Reader对象创建子类及方法
- Windows 内核数据结构学习总结
- 当前订单不支持只花呗支付是什么意思_1、(跑腿介绍篇)支付宝花呗分期线下推广...
- linux中系统调用和库函数的区别
- C. Goodbye Souvenir(CDQ 或 树套树)
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装5
- 【TensorFlow】TensorFlow从浅入深系列之二 -- 教你通过思维导图深度理解深层神经网络
- 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)
- 【flink】flink 消费组死掉 Lag不变 kafka不提交 重启恢复 非常诡异
- 批量生产insert 或者update语句
- 《计算传播学导论》读书笔记:第六章 网络传播模型与机器学习框架
- JNCIS翻译文档之------接口
- 新编计算机组装与维护标准教程,计算机组装与维护标准教程(2018-2020版)
- js中判断数据类型的方法
- SE-ResNet的实现
- THREEJS在场景图上动态标识一些文字方法二(文字精灵sprite)
- 开源的前端GIS空间分析库介绍 (一)jsts与turf
- 一劳永逸解决vs编译器无法使用scanf函数
- STM32 RTC 对晶振的要求实在不地道