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

标签 c

大家好,我正在尝试编写自己的“更多”命令,但我遇到的问题是如何输出已读取文件的百分比(类似于原始的“更多”命令)。我能想到的唯一方法是获取文件中的行数并进行一些计算以计算每次用户输入命令时的百分比('enter' 键一次显示额外的一行,'空格键一次显示 23 行)。有没有简单的方法可以做到这一点?如果没有,有人知道如何进行此计算吗?谢谢!

编辑:谢谢,我继续使用 stat 获取文件大小

struct stat st;
int fileSize;
stat(argv[1], &st);
fileSize = (int)st.st_size;

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

最佳答案

“统计”文件或打开文件并查找末尾以获得以字节为单位的大小,然后简单地跟踪字节输出/总字节数。

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

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

关于c - 你如何计算在 C 中输出的文件的百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26559017/

相关文章:

c++ - 定义静态常量结构

c - 在 C 二叉搜索树中查找和删除中位数

c - gcc:从硬件寄存器读取时 '-fno-strict-aliasing' 的奇怪行为

c - 对于 "char list[3][10];",为什么所有这些都作为 scanf() %s 参数工作---&list[i]、list[i]、&list[i][0]?

c - 如何捕获回车键( '\n')?

c - 数组的返回值全部为0

c - c 中的段错误(核心转储)

c - 当 union 类型被传递给函数时查找 union 类型

c - 将字符串输入存储到C中的不同数组中

c - fgetc 在识别新行时停止 (\n)