【发布时间】:2012-01-02 08:36:33
【问题描述】:
以下代码行将 unsigned int 值写入文件,但文件内容不可读。
struct rabin_polynomial
{
uint64_t start;
uint16_t length;
struct rabin_polynomial *next_polynomial;
};
fprintf(out_file, "%llu,%u",poly->start,poly->length);
如果我将代码的输出显示在命令行屏幕上,它是可读的。
文件“out_file”未以二进制模式打开。
这里是输出文件的部分内容:
-ÍÍÍÍÍÍp\y";^æó r\ ÍÍÍÍ- ÍÍÍÍÍÍ
Øâˆ¿»Iðr\ ÍÍÍÍ- wÍÍÍÍÍÍ7OT-OØÚ‚\ ÍÍÍͤ* L ÍÍÍÍÍÍî›ùçÉç`‚\ ÍÍÍÍð3 ÍÍÍÍÍÍ
Øâˆ¿»I°‚\ ÍÍÍÍðC ÍÍÍÍÍÍíK¬è‹Ç{ ƒ\ ÍÍÍÍðS • ÍÍÍÍÍÍ-Ló3lJ–ÞPƒ\ ÍÍÍÍ…]
这是预期的输出:
0,2861
2861,4096
6957,3959
10916,2380
13296,4096
17392,4096
【问题讨论】:
-
两个数字都无法读取,还是只有其中一个?
-
请包括相应的文件内容/文件十六进制转储以及所述输出的预期值。首先/也将它们扔到标准输出可能是最简单的。
-
@JoachimPileborg 我已经发布了部分输出
-
@pst:我已经发布了部分输出