排序:
#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; }