C编程:文件读取器格式转换错误

时间:2013-09-20 20:17:14

标签: c file debugging

我得到了

program.cpp: In function ‘int view_next(FILE*)’:
program.cpp:118: warning: unknown conversion type character ‘)’ in format

当我尝试编译(gcc -o program program.cpp)但我不知道如何修复它。有人可以帮我一把吗?

printf("\033[7m--More--(%.0f%)\033[m", float(file_size) /
        float(buffIn.st_size) * 100);

1 个答案:

答案 0 :(得分:3)

这个:

 printf("\033[7m--More--(%.0f%)\033[m", float(file_size) /

应该是:

 printf("\033[7m--More--(%.0f%%)\033[m", float(file_size) /

阅读(或谷歌)man 3 printf

这里发生的是,%字符在printf系列的函数中用于表示格式说明符正在跟随。要打印文字%字符,您可以使用另一个%字符对其进行转义。

 printf("%%\n"); // prints a literal %

这是重现错误的最小示例:

 printf("%)\n"); // errors

这是最小例子的修复:

 printf("%%)\n"); // prints "%)"