printf("\"Genius is 1%% inspiration and 99%% perspiration.\"\n");
在C语言和C++中,如果你想输出一个百分号 %,你需要使用两个百分号 %% 来转义,以防止被解释成格式化字符串的控制字符。
printf("%.3lf%\n",b/a*100);
因为它是紧跟在一个数字后面的,所以编译器能够正确地将它解释为百分号,而不是格式化字符串的一部分。
当编译器在解析格式化字符串时,它会查找特定的格式化标志,如 %d、%f 等。在你的代码中,%.3lf 表示打印一个浮点数,并限制小数点后的位数为 3 位。紧随其后的 % 并没有匹配到任何已知的格式化标志,所以它被解释为百分号。