【发布时间】:2018-09-10 06:51:15
【问题描述】:
我使用fprintf 将值打印到文件中。这是一个简化的代码sn-p。在这里,我希望文件包含单个值 0x0A。
int main() {
FILE *fp;
unsigned int hex[] = { 10 }; // Value to be written (10 = 0x0A)
fp = fopen("file.txt", "w"); // Open
fprintf(fp, "%s", hex); // Write
fclose(fp); // Close
return 0;
}
它包含值 0x0D 和 0x0A,但我预计只有 0x0A。
将hex 中的值设置为 0x0A 而不是 10 会产生相同的结果。
哪些是正确的。
这里到底发生了什么?这个 0x0D 是从哪里来的?
【问题讨论】:
-
啊...我没有注意到 10 是用于换行的 ascii。可能就是这样。
-
你试过 %c 而不是 %s 吗?
-
是的,%c 也给出了错误的输出。
-
您所说的 user3121023 是问题所在。如果您将其写为答案,我会接受。
-
为什么不喜欢这个
fwrite(hex, sizeof(*hex), 1, fp)?