求有VC6的朋友帮忙运行一个简单程序

范例:建立一个应用程序,包括数据输入,存盘,读盘,操作数据后存储.通过随机数函数rand()产生20个整数,逐个将这些数以二进制方式写入文件file.dat中.然后读出这... 范例:建立一个应用程序,包括数据输入,存盘,读盘,操作数据后存储.通过随机数函数rand()产生20个整数,逐个将这些数以二进制方式写入文件file.dat中.然后读出这些数,在内存中对它们进行增序排序,再将排序后的数以文本方式逐个写入file.out文件中.
[程序] 用C++的文件流进行文件管理,用流类的函数进行文件读写.

程序
#include //可以不写
#include
#include
using namespace std;
const int n=20;
void sort(int [],int);
int main(){
fstream dat, out; //定义文件流对象
int i,a[n],b[n];
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件
if(!dat){ //文件不存在
dat.clear(0); //清状态字
dat.open("file.dat",ios::out|ios::binary);//文件不存在,建立二进制文件
dat.close();
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件
if(!dat){
cout<<"cannot open file\n";
return -1;
}
}
for(i=0;i a[i]=rand();
dat.write((char*)&a[i],sizeof(int));//将20个数写入文件
}//因文件打开时,文件指针在头部,所以该操作是刷新文件
dat.seekg(0); //将文件指针移至文件头
for(i=0;i dat.read((char*)&b[i],sizeof(int));//读出20个数
}
sort(b,n); //调用排序函数
for(i=0;i cout< if(i%5==4) cout<<'\n';
}
cout< out.open("file.out",ios::out); //为输出打开文本文件
if(!out){
cout<<"cannot open file\n";
return -1;
}
for(i=0;i out< if(i%5==4) out<<'\n';
}
out< out.close(); //关闭文件
dat.close();
return 0;
}
void sort(int x[],int m){ //排序函数
int i,j,k,t;
for(i=0;i k=i;
for(j=i+1;j if(k!=i){
t=x[i];x[i]=x[k];x[k]=t;
}
}
}

程序可能不是很正确,有能力的麻烦略微修改下.然后把程序发给我 slob@sina.com 或QQ838286(推荐)
展开
 我来答
百度网友8a22a1696
2008-02-27 · TA获得超过187个赞
知道小有建树答主
回答量:405
采纳率:0%
帮助的人:254万
展开全部
#include <fstream.h>
#include <stdlib.h>
//#include
const int n=20;
void sort(int [],int);
int main()
{
fstream dat, out; //定义文件流对象
int i,a[n],b[n];
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件

if(!dat)
{ //文件不存在
dat.clear(0); //清状态字
dat.open("file.dat",ios::out|ios::binary);//文件不存在,建立二进制文件
dat.close();
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件
if(!dat)
{
cout<<"cannot open file\n";
return -1;
}
}

for(i=0;i<n;i++)
{
a[i]=rand();
dat.write((char*)&a[i],sizeof(int));//将20个数写入文件
}//因文件打开时,文件指针在头部,所以该操作是刷新文件

dat.seekg(0); //将文件指针移至文件头

for(i=0;i<n;i++)
{
dat.read((char*)&b[i],sizeof(int));//读出20个数
}

sort(b,n); //调用排序函数
cout<<"排序后"<<endl;
for(i=0;i<n;i++)
{
cout<<b[i]<<endl;
if(i%5==4)
{
cout<<endl;

}
}

// cout<
out.open("file.out",ios::out); //为输出打开文本文件

if(!out)
{
cout<<"cannot open file\n";
return -1;
}

for(i=0;i<n;i++){
// out<
if(i%5==4) out<<'\n';
}
//out<
out.close(); //关闭文件
dat.close();
return 0;
}

void sort(int x[],int m)
{ //排序函数
int i,j,P;//P:暂存
bool exchange;
for(i=0;i<m;i++)
{ //最多做n-1趟排序
exchange=false;
for(j=m-1;j>=i;j--)
if(x[j+1]<x[j])
{//交换记录
P=x[j+1];
x[j+1]=x[j];
x[j]=P;
exchange=true;
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
}

运行结果:
排序后
41
41
491
2995
4827

5436
5705
6334
9961
11478

11942
15724
16827
18467
19169

23281
24464
26500
26962
28145

Press any key to continue

程序就修改到能运行,没具体猜测原来的功能。
rezood
推荐于2016-01-17 · TA获得超过329个赞
知道小有建树答主
回答量:527
采纳率:0%
帮助的人:332万
展开全部
以下是修改后正确的程序:

#include <iostream>//可以不写
#include <string>
#include <fstream>
using namespace std;
const int n=20;
void sort(int [],int);
int main(){
fstream dat, out; //定义文件流对象
int i,a[n],b[n];
char buff[10];
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件
if(!dat){ //文件不存在
dat.clear(0); //清状态字
dat.open("file.dat",ios::out|ios::binary);//文件不存在,建立二进制文件
dat.close();
dat.open("file.dat",ios::out|ios::in|ios::binary);//为读写打开二进制文件
if(!dat){
cout<<"cannot open file\n";
return -1;
}
}
for(i=0;i < n; i++)
{
a[i]=rand();
memset(buff,'\0',sizeof(buff));
itoa(a[i],buff,10);
dat.write(buff,sizeof(buff));//将20个数写入文件
}//因文件打开时,文件指针在头部,所以该操作是刷新文件
dat.seekg(0); //将文件指针移至文件头
for(i=0;i < n; i++)
{
dat.read(buff,sizeof(buff));//读出20个数
b[i] = atoi(buff);
}
sort(b,n); //调用排序函数
for(i=0;i < n; i++)
{
cout << b[i];
if(i%5==4) cout<<'\n';
}
out.open("file.out",ios::out); //为输出打开文本文件
if(!out){
cout<<"cannot open file\n";
return -1;
}
for(i=0;i < n; i++)
{
out << b[i] << " ";
if(i%5==4) out<<'\n';
}
out.close(); //关闭文件
dat.close();
return 0;
}
void sort(int x[],int m){ //排序函数
int i,j,k,t;
for(i=0;i<n,k=i;i++)
for(j=i+1;j < n; j++)
{
if(k!=i){
t=x[i];x[i]=x[k];x[k]=t;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无色人生1V
2008-02-26 · 超过15用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:38.3万
展开全部
sory,我的C已经卸掉了,没机会帮你运行了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq32730822
2008-02-26
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
tianshu
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式