我在从文件中读取和写入多行数据时遇到问题。问题是从文件中读取多行二进制并将其转换为十进制并将多行十进制写入新文件。我让程序将一行二进制转换为十进制没有问题,当我有多行时麻烦就来了。到目前为止,这是我的代码:
#include <stdio.h>
#include <string.h>
#define NULL 0
int main() {
FILE *ptdata, *ptresult;
char bin[32];
int i, r = 0, len;
ptdata = fopen("data.txt", "r");
ptresult = fopen("result.txt", "w");
if (ptdata == NULL) printf("Error cannot open file");
else {
while (fgets(bin, 32, ptdata) != NULL);
len = strlen(bin);
for (i = 0; i < len; i++) {
r = r * 2 + (bin[i] == '1' ? 1 : 0);
}
printf("%d\n", r);
fprintf(ptresult, "%d\n", r);
fclose(ptdata);
fclose(ptresult);
}
return 0;
}