gpt4 book ai didi

c - C语言读写多行数据文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:23 26 4
gpt4 key购买 nike

我在从文件中读取和写入多行数据时遇到问题。问题是从文件中读取多行二进制并将其转换为十进制并将多行十进制写入新文件。我没有问题让程序将一行二进制转换为十进制,但当我有多行时,问题就来了。到目前为止,这是我的代码:

#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;
}

最佳答案

这里是错误:

while(fgets(bin,32,ptdata)!=NULL); 
//^^^You have semicolon
//here which ends the while loop

您应该执行以下操作:

 while(fgets(bin,32,ptdata)!=NULL){
len = strlen(bin);
r = 0 ;
for(i = 0; i < len; i++)
{
r = r * 2 + (bin[i] == '1' ? 1 : 0);
}

printf("%d\n",r);
fprintf(ptresult,"%d\n",r);
}

关于c - C语言读写多行数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914196/

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