小编Pab*_*blo的帖子

使用带有%s和char*的printf时出现问题

我在使用这一小段代码时遇到了一些问题:

int main(int argc, char **argv){
struct ether_addr *s, *d;

u_char dir1[] = {0x00,0x11,0x22,0x33,0x44,0x55};
u_char dir2[] = {0x66,0x77,0x88,0x99,0xaa,0xbb};

s = dir1;
d = dir2;

printf("Together: %s\t%s\n",ether_ntoa(s),ether_ntoa(d));

printf("Apart: %s\t",ether_ntoa(s));
printf("%s",ether_ntoa(d));}
Run Code Online (Sandbox Code Playgroud)

输出应该是相同的,但事实上,它是:

Together: 66:77:88:99:aa:bb 66:77:88:99:aa:bb
Apart: 0:11:22:33:44:55 66:77:88:99:aa:bb
Run Code Online (Sandbox Code Playgroud)

如果我将两个目录放在同一行,它只打印其中一个.为什么会这样?

c printf

3
推荐指数
1
解决办法
366
查看次数

标签 统计

c ×1

printf ×1