我想在c中包含i hex格式的值.
for(i=0;i<10;i++)
sprintf(s1"DTLK\x%x\xFF\xFF\xFF\xFF\xFF\xFF",i);
Run Code Online (Sandbox Code Playgroud)
但上面的代码输出一个错误:\ x使用没有后面的十六进制数字
请任何人建议我一个正确的方式....
您需要转义前面的斜杠\x:
sprintf(s1"DTLK\\x%x\xFF\xFF\xFF\xFF\xFF\xFF",i);
// ^------- Here
Run Code Online (Sandbox Code Playgroud)
根据您想要实现的输出,您可能还需要转义剩余的斜杠。
目前,该代码片段使用代码 生成六个字符的序列0xFF。如果这是您想要的,那么您的代码片段就完成了。如果您想查看一系列文字,即看起来像when 的\xFF字符串,您需要转义字符串中的所有斜杠:\x5\xFF\xFF\xFF\xFF\xFF\xFFi == 5
sprintf(s1"DTLK\\x%x\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF",i);
// ^ ^ ^ ^ ^ ^ ^
Run Code Online (Sandbox Code Playgroud)
最后,如果您希望将值格式化为两位十六进制代码,即使该值小于 16,也可以使用%02x格式代码来表明sprintf您需要一个前导零。