用printf打印一个字符串,可以这样写:
printf("hello world!");
没有问题,但这样的习惯不太好,最近就遇到这样的问题。就是如果打印的字符串里面含有%,就会产生乱码,而使用下面的形式:
printf("%s", "hello world!");
就算打印的字符串里面含有%,也能打印出来。
我们知道浏览器的url encode会把一些字符转为%表示的形式,如果不注意这些就容易出问题了。其他类似的格式化输出函数也有这样的问题,所以得注意。
走过的路,经过的事,留下一些印迹和感言,为了给自己留意,也为了给他人启发。
用printf打印一个字符串,可以这样写:
printf("hello world!");
没有问题,但这样的习惯不太好,最近就遇到这样的问题。就是如果打印的字符串里面含有%,就会产生乱码,而使用下面的形式:
printf("%s", "hello world!");
就算打印的字符串里面含有%,也能打印出来。
我们知道浏览器的url encode会把一些字符转为%表示的形式,如果不注意这些就容易出问题了。其他类似的格式化输出函数也有这样的问题,所以得注意。