txt分割器
好像是学习c++时自己写的一个txt分割器,粗糙简陋
代码如下:
#include <iostream> #include <fstream> #include <string> #include <stdlib.h> #define N 200 #define M 500 using namespace std; string name(string filename,int i); int main() { int x=1,i=1,j=1,n; char c; string filename,filenamehead,chushi; cout<<"=====txt文件分割器======= " <<endl; cout<<"请输入你要处理的txt文件:"<<endl; cout<<"输入格式如下:"<<endl; cout<<"将一般使用路径中的'\\'换为'\\\\' "<<endl; cout<<"例: d:\\\\cs\\\\123.txt"<<endl; cin>>filename; chushi=filename; //统计文件字数----------------------------------------- ifstream fin( filename.c_str() ); if(!fin) { cout<<"文件无法打开"<<"请检查后正确输入"<<endl; return -1; } while( ( c=fin.get() )!=EOF ) { if (c=='\n') { x++; } } cout<<endl; fin.close(); cout<<"该文件的行数为:"<<x<<endl; cout<<"请输入你要分成的份数(小于500份)"<<endl; cin>>n; //分离出文件名称filename filename.erase ( filename.end()-4, filename.end() ); cout<<"分割的文件与原文件在同一目录下"<<endl; cout<<"正在进行分割"<<endl<<"请稍后..."<<endl; //处理文件 按行分割 ifstream chushiin( chushi.c_str( ) ); filenamehead=name(filename,1); ofstream out(filenamehead.c_str() ); } string name(string filename,int i) { char str[10]; string filenamehead; itoa( i ,str,10); string fz(str); filenamehead=filename+"_"+fz+".txt";
return filenamehead; }
下面还有个2011年暑假写的c语言txt分割器
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #define M 100 5 void print1(); 6 int print2() //txt文件的显示 7 { 8 FILE *fp; 9 char ch,filename[M]; 10 int i,j; 11 12 printf("请输入文件地址和文件名\n"); 13 scanf("%s",filename); 14 printf("请输入你想预览的字数\n"); 15 scanf("%d",&j); 16 17 if ((fp=fopen(filename,"r"))==NULL) 18 { 19 printf("该文件无法打开\n"); 20 print1(); 21 exit(1); 22 } 23 24 for (i=1;(ch=fgetc(fp))!=EOF;i++) 25 { 26 if (i==j) 27 break; 28 else 29 putchar(ch); 30 } 31 printf("\n\n"); 32 33 fclose(fp); 34 print1(); 35 return 0; 36 } 37 38 39 int count( ) //txt文件字数统计 40 { 41 FILE *fp; 42 int count=0; 43 char filename[M]; 44 45 printf("请输入文件所在地址和文件名\n"); 46 scanf("%s",filename); 47 48 if ((fp=fopen(filename,"r"))==NULL) 49 { 50 printf("该文件无法打开\n"); 51 exit(1); 52 } 53 54 while (fgetc(fp)!=EOF) 55 count++; 56 57 fclose(fp); 58 printf("\n\n\n 该文件共有%d个字符\n\n\n",count); 59 print1(); 60 return 0; 61 } 62 63 64 int cut() 65 { 66 FILE *fp1,*output[M]; 67 int i,k,x,y,count,times; 68 char ch,fileaddress[M],filename[M],*fileaddressname,name[M]; 69 printf("分割后的文件放在与被分割文件的同一目录下\n"); 70 printf("分割开始 请输入文件所在地址(以\\结尾)\n"); 71 scanf("%s",fileaddress); 72 printf("请输入文件名\n"); 73 scanf("%s",filename); 74 printf("请输你要将该文档分成的个数\n"); 75 scanf("%d",&x); 76 77 if ((fp1=fopen(fileaddressname=strrev(strcat(strrev(filename),strrev(fileaddress))),"r"))==NULL) 78 { 79 printf("你要分割的文件无法打开1\n"); 80 exit(1); 81 } 82 while (fgetc(fp1)!=EOF) 83 {count++;} 84 y=count; 85 86 fclose(fp1); 87 printf("%d %d\n",x,y); 88 89 for (i=1;i<=x;i++) 90 { 91 sprintf(name, "%02d.txt", i); 92 93 output[i]=fopen(fileaddressname=strrev(strcat(strrev(name),fileaddress)),"w"); 94 } 95 printf("%s",fileaddress); 96 97 while ((ch=fgetc(fopen(fileaddressname=strcat(strrev(fileaddress),filename),"r")))!=EOF) 98 { 99 k++; 100 times=k/(y/x); 101 fputc(ch,output[times+1]); 102 } 103 print1(); 104 105 return 0; 106 } 107 108 109 void print1() 110 { 111 112 int x; 113 printf("*******************************************************************\n"); 114 printf(" ╭───────────────╮ \n"); 115 printf(" ╭══════┤ txt 文件分割器 V0.0 ├══════╮ \n"); 116 printf(" ║ ╰───────────────╯ ║ \n"); 117 printf(" ║ 软件介绍: ║ \n"); 118 printf(" ║ 本软件可用于txt文件的分割 ║ \n"); 119 printf(" ║ 请按照软件提示操作 ║ \n"); 120 printf(" ║ 请选择功能: ║ \n"); 121 printf(" ║ 1.预览txt文档开头 2.统计txt文档字数 ║ \n"); 122 printf(" ║ 3.分割txt文档 4.返回主菜单 ║ \n"); 123 printf(" ║ 5.退出软件 ║ \n"); 124 printf(" ║ ╭───────────────────────╮ ║ \n"); 125 printf(" ╰══┤ 王灿 2011年暑假 ├══╯ \n"); 126 printf(" ╰───────────────────────╯ \n"); 127 printf("*******************************************************************\n"); 128 scanf("%d",&x); 129 switch (x) 130 { 131 case 1: 132 print2(); break; 133 case 2: 134 count(); break; 135 case 3: 136 cut(); break; 137 case 4: 138 print1(); break; 139 case 5: 140 break; 141 default: 142 printf("输入错误 请选择功能前的数字\n"); break; 143 } 144 } 145 146 147 int main(void) 148 { 149 print1(); 150 151 return 0; 152 }