C 你能解释一下吗?
下面这行是什么意思C 你能解释一下吗?,c,printf,C,Printf,下面这行是什么意思 sprintf(version, "%ld%c", tpdu->version, sep); 我在“%ld%c”中感到困惑。这里是如何使用的?%ld%c是两个格式说明符%ld和%c。前者用于long int,后者用于char sprintf将tpdu->version的值、一个long int和sep的值、一个char写入缓冲区version,该行显示 将long inttpdu->version和charsep的值存储到缓冲区version %ld是long int
sprintf(version, "%ld%c", tpdu->version, sep);
我在
“%ld%c”
中感到困惑。这里是如何使用的?%ld%c
是两个格式说明符%ld
和%c
。前者用于long int
,后者用于char
sprintf
将tpdu->version
的值、一个long int
和sep
的值、一个char
写入缓冲区version,该行显示
将long int
tpdu->version
和char
sep
的值存储到缓冲区version
%ld
是long int
的格式说明符,而%c
是char
的格式说明符。为了更好地理解它,您必须在心里将整个格式说明符%ld%c
拆分为更基本的标记。如果在每个%符号处拆分,则会得到:%ld
和%c
%ld
是长int
的占位符
%c
是字符的占位符
因此,整个声明:
将long int
(即tpdu->version
字段的内容)和char
(即sep
变量的内容)打印到名为version
sprintf(buf,“%ld;”,tpdu->errindex,sep)的字符串缓冲区中;格式说明符%ld,这里使用分号?为什么?so@user3125224不需要分号,我在你问的问题中没有看到这样的东西,恕我直言,首先是RTFM。(这是一句谚语,不是针对个人的)。@SouravGhosh:OP可能会因为两个格式说明符之间缺少空间而感到困惑。OP可能是一个初学者,他可能认为%ld%c”
是一个单一的格式说明符,他无法破译。告诉他把这个说明符分成两部分(%ld
和%c
)的答案比“RTFM”要好。这个社区应该更欢迎和更友好的初学者。@Mr.C64请查看时间表。已经发布了两个答案。在此之后,我发表了评论,据我所知,一个问题应该反映出这一部分特别缺乏的研究成果。@Mr.C64并且说初学者友好并不意味着我们可以欢迎跳过部分。@SouravGhosh恕我直言,请继续并关闭选项卡!!!
sprintf(version, "%ld%c", tpdu->version, sep);