你如何计算在C中输出文件的百分比?

时间:2014-10-25 03:19:58

标签: c

嘿,伙计们,所以我想写自己的更多'命令,我遇到的问题是如何输出已读取的文件的百分比(如原始'更多'命令)。我能想到这样做的唯一方法是获取文件中的行数,并在每次用户输入命令时进行计算以计算此百分比('输入'键以显示另外的单行一次,'空格键一次显示23行。有一个简单的方法吗?如果没有,任何人都有一个线索,如何进行此计算?谢谢!

编辑:谢谢,我继续使用stat

获取文件大小
struct stat st;
int fileSize;
stat(argv[1], &st);
fileSize = (int)st.st_size;

现在我只需要弄清楚如何获取到目前为止已经读取/输出的字节数,以便我可以计算百分比

2 个答案:

答案 0 :(得分:2)

“stat”文件或打开并寻找最终以字节为单位获取大小,然后简单地跟踪字节输出/总字节数。

C stdio中的所有IO输出函数都会返回写入的数据量。

while((count = write(...)) > 0) {
   tot += count;
   pct = count * 100 / tot;
}

答案 1 :(得分:1)

如果您想要文件中的行数,则需要预处理整个文件以获取该信息。

如果您想要文件中的字节数,可以从statfstat获取该信息。