【发布时间】:2015-09-18 13:29:25
【问题描述】:
我想用 C 计算文件中的字符数。
我很好奇我是否使用open() 而不是fopen() 打开文件,有什么函数可以用来计算任何字符吗? open() 接受参数,第一个是 char 数组。
假设如果fopen() 没有被使用,那么fscanf() 也没有被使用。
我是 C 的新手。只是好奇它是如何工作的。
【问题讨论】:
-
几乎在任何地方,您都可以在不打开文件的情况下获取以字节为单位的文件大小。但是:那是字节,而不是字符。你真的想要角色吗?哪种编码?
-
open函数通常比fopen和朋友低级别,并且在 POSIX 系统(例如 Linux 和 Mac OSX)上是本机系统调用(因此被更高级别使用级别fopen)。我建议您阅读anopenmanual page 以了解更多信息,并查看相关功能(请参阅链接页面的底部)。如果您稍微搜索一下,整个互联网上应该也有很多示例和教程。 -
@deviantfan 我想我需要获取字节。我以为它们是一样的……有什么不同吗?
-
@JiajuShen 想想常见的UTF-8 encoding,其中只有ASCII character set 的低127 个字符适合单个字节。或者,如果文件使用固定宽度的多字节编码,例如UTF-32。那么单个字符可以(或将)是多个字节。
-
如果你只需要文件的字节数,就
stat()吧。