gpt4 book ai didi

c - 如何在 C 中将 fprintf 与动态分配的 unsigned char* 数组一起使用

转载 作者:行者123 更新时间:2023-11-30 18:32:24 25 4
gpt4 key购买 nike

我正在尝试将 unsigned char* 数组写入文件。

到目前为止我尝试过的代码的最小工作示例是(假设 fp 已正确初始化):

unsigned char* x; int i; int j; int sizeOfx;
for (i=0; i<n; i++) {
x = // getter function with parameter i
sizeOfx = // getter function that returns the number of elements in x
for (j=0; j<sizeOfx; j++) {
fprintf(fp,"%s",x[j]);
}
}

即我一次检查 char 数组一个元素并将其写入文件。

但是,我收到错误

format ‘%s’ expects argument of type ‘char*’, but argument 3 has type ‘int’ [-Wformat]

我该如何解决这个问题?

提前非常感谢您!

最佳答案

%s 用于打印字符串,因此您需要将 x[j] 更改为 x 来“修复”您的错误。

由于您似乎确实想单独编写每个char,因此您需要考虑如何存储“元素”(字符串的字符)。

您可以使用 %c 将它们的值作为 ASCII 值存储在文件中(使用 %sx 时基本相同>,除非您想写比完整字符串更多/更少的内容)。

或者您可以使用 %d 将“元素值”存储为整数,即使用字符 0-9 的文本值。或者可能是使用 %x 使用字符 0-9 和 a-f 的十六进制。

因此,如何存储 x 的“元素”取决于您。

关于c - 如何在 C 中将 fprintf 与动态分配的 unsigned char* 数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com