输出乱码有关问题
输出乱码问题这段代码最后的输出是乱码,不知道问题在哪?请大家帮忙指正,多谢了!!C/C++ code#include stdi
输出乱码问题
这段代码最后的输出是乱码,不知道问题在哪?请大家帮忙指正,多谢了!!
C/C++ code#include <stdio.h>#include <string.h>int main(){ int i,j; char buf[] = "123456781212121212121212121212121212121212"; char tmp_buf[512]; int len = strlen(buf); for (i = 0,j = 0; i < len && j < 512; i++) { if (i && ((i % 8) == 0)) tmp_buf[j++] = '\n'; sscanf(&buf[i],"%x",&tmp_buf[j++]); tmp_buf[j++] = ' '; }tmp_buf[j] = '\0';printf("%s\n",tmp_buf);return 0;}
[解决办法]tmp_buf里面只会有空格和回车字符,怎么输出你想要的字符呢?
[解决办法]sscanf(&buf[i],"%x",&tmp_buf[j++]);
改为:sscanf(&buf[i],"%c",&tmp_buf[j++]);
晕,楼主比较粗心哈
[解决办法]用%c而不是%x
[解决办法]如果你想用%x,那么不能直接用源串,因为会把整个字符串转成整形然后转16进制,要用临时串只拷贝1个字符
另外用%x转换后不能直接printf输出
[解决办法]不明白LZ的意图,请明示~
[解决办法]输出连续2个66,怎么也想不到如何与原数据对应~
[解决办法][解决办法]你这段代码问题很多
[code=C/C++][/code]
#include <stdio.h>
#include <string.h>
int main()
{
int i,j;
char buf[] = "123456781212121212121212121212121212121212";
char tmp_buf[512];
int len = strlen(buf);
for (i = 0,j = 0; i < len && j < 512; i++) {
if (i && ((i % 8) == 0))
tmp_buf[j++] = '\n';
sscanf(&buf[i],"%x",&tmp_buf[j++]);//你这样存入tmp_buf[j++]中的是int型的数值
tmp_buf[j++] = ' ';
}
tmp_buf[j] = '\0';
printf("%s\n",tmp_buf);//这个时候输出的是char型的输出的是123456781212121212121212121212121212121212对应的是ASC
return 0;
}