大家帮忙给我讲讲这个!(在线等)
/*我的第一个程序的目的是以二进制的格式向zhaoxwen这个文件中输入10个数
第二个程序的目的是以二进制打开,并计算它们的和,输出在屏幕上!
//first program
#include<stdio.h>
#include<iostream.h>
//#include<stderr.h>
void main ()
{
int record[10],sum=0;
for(int i=0;i<10;i++)
{
scanf("%i",&record[i]);
}
FILE* pf1;
pf1=fopen("zhaoxwen","wb");
for(i=0;i<10;i++)fwrite(&record[i],sizeof (int),1,pf1);
// fputc(record[i],pf1);
fclose(pf1);
}
//Second propram
#include<stdio.h>
#include<iostream.h>
//#include<stderr.h>
void main (int argc,char* argr[])
{
int record[10],sum=0;
if(argc!=2)
{
cout<<"You forget to enter the FileName!\n";
}
FILE* pf2;
if ((pf2=fopen(argr[1],"rb"))==NULL)
{
cout<<"Can not open the File!";
// exit(0);
}
for(int i=0;i<10;i++)
{
// record[i]=fgetc(pf2);
fread(&record[i],sizeof(int),1,pf2)
}
fclose(pf2);
cout<<record[0]<<record[1];
cout<<"Sum="<<record[0];
for(i=0;i<10;i++)
{
sum=sum+record[i];
if(i!=0)
cout<<"+"<<record[i];
if(i%5==0)cout<<endl;
}
cout<<"="<<sum;
}
干脆点!原题如下:
一、在硬盘的C:\data\record.dat文件中,以二进制方式存放了100个整型数据。要求编写程序将该文件中的数据以文本文件的形式转存到另外的文件中去,文本文件中每行10个数据,每行中的相临数据用一个空格分隔。为应用方便,需使用命令行参数,其中必须的参数是:转存到的可能带有路径的目标文件名。例如:若你编写的工程文件名是convert.prj,生成的可执行文件名是convert.exe,在DOS提示符下键入convert C:\data\goal.txt ,则应将原文件C:\data\record.dat转存到C:\data\goal.txt中。
二、在硬盘的C:\data\record.dat文件中,以二进制方式存放了100个整型数据。要求编程完成:
(1) [10分]将该文件中的数据求和并打印显示出来。
(2) [10分]将该100个数构成的集合的所有子集合打印显示出来。
问题是:如何实现问题一中的 convert C:\data\goal.txt 和问二中的(2),打印其所有子集合