gpt4 book ai didi

c - 在 C 中的文件处理中未读取正确的值

转载 作者:行者123 更新时间:2023-11-30 15:01:22 24 4
gpt4 key购买 nike

我的第一篇文章:)我编写了一个小程序,在其中从文本文件读取值并使其按原样打印,然后打印其等效的二进制值但我面临的问题是我打印的值与文件中的值不同例如。我的文本文件中有 23,当我尝试读取它并打印该值时,我得到 1任何人都知道我错过了什么或我错在哪里。我在这里发布我的代码预先感谢您

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>





char number_read = 0;
char number = 0;
char number_of_ones = 0;
char remainder_value = 0;
char binary = 0;
char base = 0;



int main()

{
FILE *fp;


fp = fopen ("File.txt","r");

while(1)
{
number_read = fgetc(fp);

if( feof(fp) )
{
break ;
}

printf("\nnumber is=%c", number_read);

while (number_read>0)
{
remainder_value = number_read % 2;
/* To count no.of 1s */
if (remainder_value == 1)
{
number_of_ones++;
}

binary = binary + remainder_value * base;
number_read = number_read/2;
base = base * 10;

}


}
fprintf("\nINPUT number is = %d\n", number);
fprintf("\nIt's in the binary number is = %d\n", binary);
fprintf("\nNo.of 1's in the binary number is = %d\n", number_of_ones);

fclose(fp);

return 0;
}

最佳答案

在您的情况下传递给 fprintf 函数的参数是错误的。将部分更改为以下内容:

fprintf(fp,"\nINPUT number is = %d\n", number); 
fprintf(fp,"\nIt's in the binary number is = %d\n", binary);
fprintf(fp,"\nNo.of 1's in the binary number is = %d\n",number_of_ones);

因此添加 fp 作为 fprintf 的第一个参数。

要获取字符number_read的整数值,可以使用C语言提供的atoi函数。(引用this)

关于c - 在 C 中的文件处理中未读取正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457280/

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