文本统计器

    xiaoxiao2021-12-14  20

    #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> #include <windows.h> #include <string.h> using namespace std; FILE *fp=fopen("数据文件.txt","r"); #define MAX 1024 // Windows下txt文件一行最多1024字符 char line[MAX]; int main() { HWND TheWindow; SetConsoleTitle("文本统计器"); system("color f0"); char stop[3]="。"; int data = 0,chinese = 0, sentence = 0,blank = 0; int english_ch = 0,passages = 0,rows = 0; unsigned char temp[2]; while(fgets( line , MAX , fp) != NULL) { rows++; if(line[0] == '\n') continue; for(int i = 0; i < 100;i++) { if(line[i] == '\n') { passages++; //段落 continue; } temp[0] = line[i]; if (temp[0] >= 0XB0 )//GB2312下的汉字,最小是0XB0 { i++; chinese++; continue; } if(line[i] >= 'a'&&line[i] <= 'z'||line[i] >= 'A'&&line[i] <= 'Z') { english_ch++; continue; } if(line[i] >= '0' && line[i] <= '9') { data++; continue; } if(line[i] == ' ') { blank++; continue; } if(line[i] == stop[0] && line[i+1] == stop[1]||line[i] == '.') { sentence++; continue; } } } fp=fopen("文本统计结果文件.txt","w"); fprintf(fp,"中文个数为:-\n",chinese); fprintf(fp,"英文个数为:-\n",english_ch); fprintf(fp,"数字个数为:-\n",data); fprintf(fp,"空格个数为:-\n",blank); fprintf(fp,"句子数为:-\n",sentence); fprintf(fp,"行数为:-\n",rows); fprintf(fp,"段落数为:-\n",passages); fclose(fp); ShellExecute(NULL,"open","文本统计结果文件.txt",NULL,NULL,SW_SHOWNORMAL); TheWindow = ::FindWindow( NULL, "文本统计器" ); SendMessage(TheWindow,WM_SYSCOMMAND,SC_CLOSE,NULL); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-964227.html

    最新回复(0)