WC

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

}