用printf打印一个字符串,可以这样写:

printf("hello world!");

没有问题,但这样的习惯不太好,最近就遇到这样的问题。就是如果打印的字符串里面含有%,就会产生乱码,而使用下面的形式:

printf("%s", "hello world!");

就算打印的字符串里面含有%,也能打印出来。

我们知道浏览器的url encode会把一些字符转为%表示的形式,如果不注意这些就容易出问题了。其他类似的格式化输出函数也有这样的问题,所以得注意。