gpt4 book ai didi

c - 文件输出变得奇怪

转载 作者:行者123 更新时间:2023-11-30 14:56:40 25 4
gpt4 key购买 nike

在我的程序写入文本文件后,我收到奇怪的字符。例如:

Enter Weight in Pounds and Height in Inches: ÍÍÍÍYour BMI is: 25.11

超重

这些“ÍÍÍÍ”应该是数字,即:170 70。

还有其他人遇到过这个问题吗?如果您需要在这里查看我的代码。

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

FILE *fp;
void Calculate_BMI(double Weight_in_Pounds, double Hieght_in_Inches, double BMI);
int main()
{
fp = fopen("csis.txt", "w");
int i;
double Wieght_in_Pounds, Hieght_in_Inches, BMI;

Wieght_in_Pounds = 0;
Hieght_in_Inches = 0;
BMI = 0;
for (i = 1; i <= 4; ++i) {
Calculate_BMI(Wieght_in_Pounds, Hieght_in_Inches, BMI);
}

fclose(fp);
system("pause");
return(0);
}

void Calculate_BMI(double Weight_in_Pounds, double Hieght_in_Inches, double
BMI)
{
printf("Enter Weight in Pounds and Hieght in Inches: ");
fprintf(fp, "Enter Weight in Pounds and Hieght in Inches: ");
scanf(" %lf %lf", &Weight_in_Pounds, &Hieght_in_Inches);
fscanf(fp, " %lf %lf", &Weight_in_Pounds, &Hieght_in_Inches);
BMI = (Weight_in_Pounds * 703) / (Hieght_in_Inches * Hieght_in_Inches);
printf("Your BMI is: %3.2lf\n", BMI);
fprintf(fp, "Your BMI is: %3.2lf\n", BMI);
if (BMI < 18.5) {
printf("Under Weight\n");
fprintf(fp, "Under Weight\n");
}
else if (BMI >= 18.5, BMI <= 25.0){
printf("Normal weight\n");
fprintf(fp, "Normal weight\n");
}
else if (BMI >= 25.0, BMI <= 30.0) {
printf("Overweight\n");
fprintf(fp, "Overweight\n");
}
else {
printf("Obese\n");
fprintf(fp, "Obese\n");
}
}

最佳答案

  1. 无效操作fscanf()在以写入模式打开的文件上 ( w )。删除fscanf()声明。

  2. 替换 ,&& if 中的运算符声明。 comma的结果( , ) 运算符与其序列中最右边的操作数具有相同的类型和值。所以只有 BMI <= 25.0 的结果和BMI <= 30.0被考虑。

    if (BMI >= 25.0 && BMI <= 30.0)
  3. 另外不要忘记检查 fopen() 的返回值和scanf() .

关于c - 文件输出变得奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479917/

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