之前看过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");
}