我需要在文件中打印各种格式字符串。我将使用与每个字符串相关联的整数,与每个字符串中的格式说明符相同的整数数。大多数字符串都没有相同数量的格式说明符/整数。
因此给出了blah blah blah %d something else blah %hd blah blah blah %02hd blah %d
行的格式字符串
和一个包含四个需要在这个语句中出现的整数的参数列表,将vsprintf
并行地通过参数列表和格式语句,将第一个列表项放在第一个说明符中,第二个项放在第二个说明符中, 等等等等。或者它会通过列表将所有项目放在第一个说明符处吗?
换句话说,以下两个陈述是等价的吗?
sprintf(buffer,"blah blah blah %d something else blah %hd blah blah blah %02hd blah %d",a1,a2,a3,a4)
vsprintf(buffer,"blah blah blah %d something else blah %hd blah blah blah %02hd blah %d", args)
vsprintf
args
中的将是va_list
。 va_list args;
。
答案 0 :(得分:1)
将
vsprintf
并行地通过参数列表和格式语句,将第一个列表项放在第一个说明符中,将第二个项放在第二个说明符中,[等等]
是的,这是它将产生的结果。
或者它会通过列表将所有项目放在第一个说明符处吗?
没有。 vsprintf
如果这样做的话就不会有用。