/********************************************************
#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;
}
【运行结果】