我有很奇怪的问题。我在LoadRunner中进行性能测试,并注意到在某些地址中我有奇怪的编码字符。编码URL字符
我写了一个测试程序,这是代码:
char bla[256]="test %3A test %2B";
printf(bla);
输出有没有意义。它看起来像这样:
测试0X0.000000P + 0检验B
这到底是怎么回事?
我有很奇怪的问题。我在LoadRunner中进行性能测试,并注意到在某些地址中我有奇怪的编码字符。编码URL字符
我写了一个测试程序,这是代码:
char bla[256]="test %3A test %2B";
printf(bla);
输出有没有意义。它看起来像这样:
测试0X0.000000P + 0检验B
这到底是怎么回事?
我认为,这里的问题是由喜欢在阵列中%3A
和%2B
的%
-ed元素的存在造成的,你传递,为printf()
作为唯一的参数,如果没有一个格式说明字符串。
当您将一个字符串直接传递给printf()
(作为printf()
的第一个参数)时,它会将这些字符串解释为格式说明符,并期望为此提供参数。但是,使用
%2B
和你可以试着改变你print语句
printf("%s\n", bla);
使printf()
明白,那些%
s不携带任何特殊的含义,它们只是被打印。
感谢您的帮助!我几年来一直没有用C语言编程,现在看起来几乎完全不同的C#和JS:P –
@PawełReszka不用多说,不用担心。 :-) –
http://stackoverflow.com/questions/1860159/how-to-escape-the-sign-in-cs-printf –