之前看过Java相关书籍,主要学习的是Android,但是我发现用安卓写略微复杂,我还是用c语言仿照网上的demo写了一个。
后来发现当文件为空时,数据统计出错。就添加了:
if (num == 0) { printf("文件中的字符个数为:%d", num ); printf("文件中空格个数为:%d", num1); printf("文件中行数为:%d", num2 ); printf("文件中单词个数为:%d", num3); } else { printf("文件中的字符个数为:%d", num - 1); printf("文件中空格个数为:%d", num1 - 1); printf("文件中行数为:%d", num2 + 1); printf("文件中单词个数为:%d", num3); }
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> void main() { FILE *fp; errno_t err; char ch; int num=0,num1=0,num2=0,num3=0,word=0; err = fopen_s(&fp,"1.txt", "r"); if (fp == NULL) { printf("can not open file"); getchar(); exit(0); } ch = fgetc(fp); while (!feof(fp)) { if (ch == ' ') num1++; if (ch == ' ') num2++; putchar(ch); ch=fgetc(fp); num++; } num3 = num-num1 - num2; if (num == 0) { printf("文件中的字符个数为:%d", num ); printf("文件中空格个数为:%d", num1); printf("文件中行数为:%d", num2 ); printf("文件中单词个数为:%d", num3); } else { printf("文件中的字符个数为:%d", num - 1); printf("文件中空格个数为:%d", num1 - 1); printf("文件中行数为:%d", num2 + 1); printf("文件中单词个数为:%d", num3); } fclose(fp); system("pause"); }