大家好,我正在尝试编写自己的“更多”命令,但我遇到的问题是如何输出已读取文件的百分比(类似于原始的“更多”命令)。我能想到的唯一方法是获取文件中的行数并进行一些计算以计算每次用户输入命令时的百分比('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/