structf的structf成员

时间:2015-01-29 23:05:57

标签: c struct printf

我在使用printf打印结构的单个成员时遇到问题。 我有一个由char数组组成的结构。尝试打印这样的单个成员时:

printf("%s", header.oscar_fname);

它打印整个结构。我无法弄清楚我在哪里出错了。

2 个答案:

答案 0 :(得分:3)

您必须显示结构定义以及如何分配值。但我90%肯定你没有为结构成员终止零字节,因此printf打印所有后续成员。使用strcpy设置成员值或将最后一个字节/ char设置为0:header.oscar_fname[sizeof header.oscar_fname - 1] = 0

答案 1 :(得分:1)

printf("%.*s", (int)sizeof header.oscar_fname, header.oscar_fname);

打印指定数组的内容,如果存在则最多为0-terminator。

man printf提供了所有选项。