【代码详情】 /******************************************************** /* 程 序 名:C++文本分割 /* 作 者:为了娶个美女老婆而AC /* 编程时间:2009年8月2日 /* 主要功能:分割文本 *********************************************************/ #include<iostream.h> #include<fstream.h> #include<stdlib.h> #include<string.h>//编译命令 int main() { //主函数开始 char filename[100], line,count[5]="_000",suffix[5]=".txt",outfilename[150]; double N=0,n=0,j;//定义变量 int i,len; ifstream infile;//定义一个输入流对象infile cout<<"请输入要切割的文档文件名:";//提示信息 cin.getline(filename,100);//输入文件名(含空格) len=strlen(filename); if(filename[len-1]!='t' || filename[len-2]!='x' || filename[len-3]!='t' || filename[len-4]!='.') { strcat(filename,suffix);//如果没有后缀名的加上后缀名 } infile.open(filename,ios::in|ios::nocreate);//打开名字为filename的文档文件 if(!infile)//如果在当前目录下不存在,输出错误,并退出 { cout<<"系统错误,请确定文件是否存在!!!请重试!"<<endl; system("PAUSE");//屏幕暂停 exit(1);//退出 } cout<<"提取文件中,请稍等……"<<endl;//输入提示信息 while(infile>>line)//循环计算文本的字节数 { N++;//数数 } infile.close();//关闭文件 //--------------------↑计算原文本字节数↑------------------------------------ system("CLS");//清屏命令 cout<<"检查完毕……"<<endl; cout<<"请输入要将文档平均切割的数量(最多为1000):";//提示信息 cin>>n;//输入切割数量 infile.open(filename,ios::in|ios::nocreate);//在将原来的文本打开 if(!infile)//如果在当前目录下不存在,输出错误,并退出 { cout<<"系统错误,请确定文件是否存在!!!请重试!"<<endl; system("PAUSE");//屏幕暂停 exit(2);//退出 } for(i=0;i<n;i++)//控制输出文档的个数 { j=0;//计算字节数 //-------------------------↓修改切割文本改名称↓------------------------------------------ strcpy(outfilename,filename);//拷贝原文件名 count[3]=char(i%10+'0'); count[2]=char(i/10%10+'0'); count[1]=char(i/100%10+'0'); strcat(outfilename,count);//加上个数 strcat(outfilename,suffix);//加上后缀 //--------------------------↑修改切割文本改名称↑----------------------------------------- fstream outfile(outfilename,ios::out);//创建输出流,建立名字为outfilename的文件 if(!outfile) { cout<<"系统错误!请重试!"<<endl; system("PAUSE"); exit(3); } while(j<=N/n && infile.get(line))//循环从filename的文档文件读取字符 { j++; outfile<<line;//将它在随着输出流输入新建的outfilename文件 } outfile.close();//关闭新建文件 } infile.close();//关闭原文件 cerr<<"/n……恭喜恭喜恭喜O(∩_∩)O文件切割完成O(∩_∩)O恭喜恭喜恭喜……/n/n";//输出提示 system("PAUSE"); return 0; } 【运行结果】