【发布时间】:2016-09-12 16:30:12
【问题描述】:
我在 C 中使用循环并试图确定 fprintf 的工作原理。
fprintf(out, "%02X", (int)(ch & 0x00FF);
此语句为循环的每次迭代打印出一个十六进制值 char。
我可以将它存储在变量或字符数组中吗?
如何将其连接成一个大字符串,然后将其写入文件?
我是否必须检查迭代的总大小,并在开始时将 char 数组设置为循环的正确大小,然后附加到这个?
【问题讨论】:
-
你希望它打印什么?
-
我希望将每次迭代的每个十六进制值存储在一个长字符串中,我可以一次打印出来(在循环结束时)
-
目前它为每次迭代打印一个十六进制值 - 这是预期的,但我想在最后将其更改为一个输出。
-
@Ke 有什么问题吗?是吗,如何存储值?或者如何使它们成为十六进制字符?
-
听起来您可能想使用
sprintf()代替:cplusplus.com/reference/cstdio/sprintf "如果在 printf 上使用格式,则使用与打印相同的文本组成一个字符串,但不是打印,而是内容作为 C 字符串存储在 str 指向的缓冲区中。”
标签: c arrays printf string-concatenation