统计文件中的字符数、字数和总行数,包括:

每行字符数和字数

文件中的字符总数、单词总数和总行数

注意:

空格字符(空格和制表符缩进)不包括在字符总数中。

单词由空格分隔。

不考虑一个单词在两行的情况。

每行的字符数不能超过1000个。

更多的学习资料和项目开发以及新手教育视频是C语言C学习交流496926338。

请先看代码。

# include在d盘下创建demo.txt文件,然后输入以下内容:

I am Chinese。I love my country。运行程序并按如下方式输出:

input file name :d ://demo . txt上方的程序从文件中一次读取一行,放入缓冲区缓冲区,然后遍历缓冲区以计算当前行的字符和词数。

Fgets()函数用于从文件中读取单行或指定数量的字符,原型如下:

Char * fgets (char * buffer、intsize、file * stream);

参数说明:

Buffer是存储读取数据的缓冲区。

Size是要读取的字符数。如果此行中的字符数大于size-1,则在读取size-1个字符时结束,最后附加“ 0”。如果此行中的字符数小于size-1,则读取所有字符,并在末尾添加“”。也就是说,一次最多可以读取size-1个字符。读取的字符包括换行符。

Stream是文件指针。

有些读者会问,为什么不用getc()从文件中一次读取一个字符,不需要打开缓冲区。

这样做没有问题,但不同平台对文本文件换行的处理方式不同,Linux对' n '进行换行,Windows对' nr '进行换行,Mac对' r 因此,使用getc()函数处理换行符可能会很麻烦。

这里不复杂,通过fgets()读取整个数据行,然后处理每个字符,直接忽略“n”和“r”。

注意:由于每行末尾最多有2字节长度的换行符,fgets()添加了NUL,因此缓冲区长度必须至少为1003,以便每行容纳1000个字符。否则,strlen()可能会返回垃圾值。

更多的学习资料和项目开发以及新手教育视频是C语言C学习交流496926338。

查看代码43行,如果在打开文件时出错,则返回NULL,而不是生硬的exit()。这样可以通知主协调函数出现错误,适当处理主协调函数,或通知用户,从而提高软件的用户体验。

相关推荐