排序:
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
int numbers[10000];
int MyCompare(const void* p1,const void* p2)
{
return *((int*)p1)-*((int*)p2);
}
int main()
{
int i=0;
ifstream inFile("in.txt",ios::in);
ofstream outFile("out.txt",ios::out);
while(inFile >> numbers[i]) i++;
cout<<"i="<<i<<endl;
for(int j=0;j<i;j++)
cout<<numbers[j]<<" ";
cout<<endl;
qsort(numbers, i, sizeof(int), MyCompare);
for(int j=0;j<i;j++)
cout<<numbers[j]<<" ";
cout<<endl;
for(int j = 0; j < i; j ++)
outFile << numbers[j] << " ";
outFile.close();
inFile.close();
return 0;
}
文件拷贝:
命令行参数见链接:点击打开链接
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc,char* argv[])
{
//locale::global(locale(""));//将全局区域设为操作系统默认区域,含中文的路径
for(int i=0;i<3;i++)
{
cout<<"argv["<<i<<"]= "<<argv[i]<<endl;
}
if(argc!=3)
{
cout<<"File name missing!"<<endl;
return 0;
}
ifstream inFile(argv[1],ios::binary|ios::in);
//setlocale(LC_ALL,"C");//还原
if(!inFile)
{
cout<<"Source file open error."<<endl;
return 0;
}
ofstream outFile(argv[2],ios::binary|ios::out);
//setlocale(LC_ALL,"C");//还原
if(!outFile)
{
cout<<"New file open error."<<endl;
inFile.close();
return 0;
}
char c;
while(inFile.get(c))
outFile.put(c);
outFile.close();
inFile.close();
return 0;
}
文件合并与复原
合并程序:merge.exe
命令行敲 :
merge –e file1 file2 file3 …. result.dat
则将 file1, file2, file3 … 等一系列文件合并成一个文件,名为 result.dat。 -e表示合并
merge –x result.dat
则将result.dat里打包的文件解出来放在当前文件夹下 -x表示要解开 ,须保持原来的文件名
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int main(int argc,char* argv[])
{
char t=argv[1][1];
if(t=='e')
{
ofstream outfile(argv[argc-1],ios::binary|ios::out);
if(!outfile)
{
cerr<<"result file open error."<<endl;
return 0;
}
for(int i=2;i<argc-1;i++)
{
ifstream infile(argv[i],ios::binary|ios::in);
if(!infile)
{
cerr<<"file open error."<<endl;
return 0;
}
//写文件名
int j=0;
while(argv[i][j])
{
outfile.put(argv[i][j]);
j++;
}
outfile.put('#');
//写文件内容
char c;
while(infile.get(c))
outfile.put(c);
outfile.put('#');
infile.close();
}
outfile.close();
}
if(t=='x')
{
ifstream infile(argv[argc-1],ios::binary|ios::out);
if(!infile)
{
cerr<<"result file open error."<<endl;
return 0;
}
char p[30];
char q[100000];
while(infile.getline(p,30,'#'))
{
ofstream outfile(p,ios::binary|ios::out);
if(!outfile)
{
cerr<<"new file open error."<<endl;
return 0;
}
memset(p,0,sizeof(p));
if(infile.getline(q,100000,'#'))
{
int len=strlen(q);
for(int i=0;i<len;i++)
outfile.put(q[i]);
memset(q,0,sizeof(q));
}
outfile.close();
}
infile.close();
}
return 0;
}