【发布时间】:2019-04-20 01:29:10
【问题描述】:
我正在使用二进制文件来读取整数数组,那么每个偶数 x 应该变成 2 * x,每个奇数 x 应该变成 3 * x。当我这样做时,它总是读取第二个整数(即2)。有什么想法吗?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *f;
f = fopen("inputData.txt", "w+b");
int n = 5;
int i;
for (i = 1; i <= n; ++i) {
fwrite(&i, sizeof(int), 1, f);
}
int x;
fseek(f, 0, SEEK_SET);
while (fread(&x, sizeof(int), 1, f) == 1) {
printf("%d ", x);
if (x % 2 == 0) {
fseek(f, -sizeof(int), SEEK_CUR);
x = x * 2;
fwrite(&x, sizeof(int), 1, f);
} else {
fseek(f, -sizeof(int), SEEK_CUR);
x = 3 * x;
fwrite(&x, sizeof(int), 1, f);
}
}
fclose(f);
}
【问题讨论】:
标签: c windows file binaryfiles fseek