1 统计大写字母、小写字母、数字、换行、空格、其他的个数
2 统计汉字个数
3 用户输入一段文本,写入到文件,以EOF结束,即ctrl+z结束
4 把一个文本文件复制到另一个文件中
5 统计文件大小,文件有多少行数
1 统计大写字母、小写字母、数字、换行、空格、其他的个数
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 void main() 6 { 7 char path[100] = "E:\1.txt";//文件路径 8 FILE *fp = fopen(path, "r");//打开文件,按照读的模式 9 10 if (fp) 11 { 12 printf("文件打开成功 "); 13 14 char ch; 15 int numA = 0;//统计大写字母的个数 16 int numa = 0;//统计小写字母的个数 17 int num0 = 0;//统计数字的个数 18 int numn = 0;//统计换行的个数 19 int numo = 0;//统计其他字符 20 int numk = 0;//统计空格的个数 21 22 ch = fgetc(fp); 23 24 while (!feof(fp))//读取一个字符,没有结束就继续 25 { 26 if (ch >= 'A' && ch <= 'Z') 27 { 28 numA++; 29 } 30 else if (ch >= 'a' && ch <= 'z') 31 { 32 numa++; 33 } 34 else if (ch >= '0' && ch <= '9') 35 { 36 num0++; 37 } 38 else if (ch == ' ') 39 { 40 numn++; 41 } 42 else if (ch == ' ') 43 { 44 numk++; 45 } 46 else 47 { 48 numo++; 49 } 50 51 ch = fgetc(fp); 52 } 53 54 printf("大写字母%d,小写字母%d,数字%d,换行%d,空格%d,其他%d", numA, numa, num0, numn, numk, numo); 55 56 fclose(fp);//关闭文件 57 } 58 else 59 { 60 printf("无法打开文件 "); 61 } 62 63 system("pause"); 64 }
2 统计汉字个数
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 void main() 6 { 7 char path[100] = "E:\1.txt";//文件路径 8 FILE *fp = fopen(path, "r");//打开文件,按照读的模式 9 10 if (fp) 11 { 12 int ich;//获取字符,fgetc的返回值是int,不用int,ASCII码没有问题,但是汉字就会出问题 13 //int占4个字节,用int存储汉字 14 int nume = 0;//标记多少个英文字母 15 int num0 = 0;//标记多少个数字 16 int numc = 0;//标记多少个汉字 17 18 while ((ich = fgetc(fp)) != EOF)//从文件获取字符,没有到结尾就继续 19 { 20 if ((ich >= 'A' && ich <= 'Z') || (ich >= 'a' && ich <= 'z')) 21 { 22 nume++; 23 } 24 else if (ich >= '0' && ich <= '9') 25 { 26 num0++; 27 } 28 else if (ich > 128)//判断双字节字符 29 { 30 ich = fgetc(fp);//继续向前读一个字节,因为是双字节字符 31 numc++;//双字符自增 32 } 33 } 34 35 printf("英文字母%d,数字%d,汉字%d", nume, num0, numc); 36 37 fclose(fp); 38 } 39 else 40 { 41 printf("无法打开文件 "); 42 } 43 44 system("pause"); 45 }
3 用户输入一段文本,写入到文件,以EOF结束,即ctrl+z结束
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 void main() 6 { 7 char path[100] = "E:\1.txt";//文件路径 8 FILE *fp = fopen(path, "w");//打开一个写入的文件,有就覆盖,没有创建之 9 10 if (fp) 11 { 12 printf("文件打开成功 "); 13 14 char ch = getchar();//用户输入数据,按照写入数据 15 while (ch != EOF)//文件结尾,crrl+z代表文件的结束,会让getcahr产生结束符EOF 16 { 17 fputc(ch, fp);//写入字符 18 ch = getchar();//获取字符输入 19 } 20 21 fclose(fp); 22 } 23 else 24 { 25 printf("无法打开文件 "); 26 } 27 28 system("pause"); 29 }
4 把一个文本文件复制到另一个文件中
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 void main() 6 { 7 char pathr[100] = "E:\1.txt"; 8 char pathw[100] = "E:\2.txt"; 9 FILE *fpr = fopen(pathr, "r");//文件读取的指针 10 FILE *fpw = fopen(pathw, "w");//文件写入的指针 11 12 if (fpr && fpw) 13 { 14 while (!feof(fpr))//feof(fpr)返回值为非0,就是到了文件结尾,值为0,还没有到结尾 15 { 16 char ch = fgetc(fpr);//从fpr中读取一个字符 17 fputc(ch, fpw);//向文件写入一个字符 18 } 19 20 fclose(fpr); 21 fclose(fpw); 22 } 23 else 24 { 25 printf("无法打开文件 "); 26 } 27 28 system("pause"); 29 }
5 统计文件大小,文件有多少行数
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int getfilesize(char *path)//获取文件大小 6 { 7 int num = -1;//保存文件大小 8 FILE *fp = fopen(path, "r"); 9 10 if (fp) 11 { 12 fseek(fp, 0, SEEK_END);//把位置指针移到文件末尾 13 num = ftell(fp);//求出文件中的字节数 14 fclose(fp); 15 } 16 else 17 { 18 printf("无法打开文件 "); 19 } 20 21 return num; 22 } 23 24 int getn(char *path)//获取行数 25 { 26 int i = -1;//保存行数 27 FILE *fp = fopen(path, "r"); 28 29 if (fp) 30 { 31 i = 0; 32 33 while (!feof(fp)) 34 { 35 char str[275]; 36 fgets(str, 275, fp); 37 i++; 38 } 39 40 fclose(fp); 41 } 42 else 43 { 44 printf("无法打开文件 "); 45 } 46 47 return i; 48 } 49 50 void main() 51 { 52 char *path = "E:\1.txt"; 53 int num = getfilesize(path); 54 printf("文件大小%d字节 ", num); 55 printf("文件有%d行 ", getn(path)); 56 57 system("pause"); 58 }