C编程温度转换

C编程温度转换,c,C,我是一个初学者,想知道为什么下面的代码不起作用?我的编译器是苹果Xcode 问题1:找不到“conio.h”文件 问题2:缺少类型说明符,默认为“int”。 问题3:函数“getch”的隐式声明在C99中无效 有人能给我解释一下上面的意思吗?我不知道 下面是我的代码: #include <stdio.h> #include <conio.h> //----- ISSUE 1 -----// main() { //----- ISSUE 2 -----// flo

我是一个初学者,想知道为什么下面的代码不起作用?我的编译器是苹果Xcode

问题1:找不到“conio.h”文件
问题2:缺少类型说明符,默认为“int”。
问题3:函数“getch”的隐式声明在C99中无效

有人能给我解释一下上面的意思吗?我不知道


下面是我的代码:

#include <stdio.h>
#include <conio.h> //----- ISSUE 1 -----//

main() { //----- ISSUE 2 -----//

  float a, b, centigrade, fahrenheit;
  int x; 

  printf("Press 1:Fahrenheit To Centigrade\nPress 2:Centigrade to  Fahrenheit\n");
  scanf("%d",&x);
  switch(x)
    {
      case 1:
      printf("\nEnter the value of Fahrenheit Temperature:");
      scanf("%f",&a);
      centigrade=5*(a-32)/9;
        printf("Centigrade Temperature:%f\n",centigrade);

          break;

      case 2:
      printf("\nEnter the value of Centigrade Temperature:");
      scanf("%f",&b);
      fahrenheit=((9*b)/5)+32;
        printf("Fahrenheit Temperature:%f\n",fahrenheit);

          break;

      default:
      printf("wrong Input");
      }

getch(); //----- ISSUE 3 -----//

return(0);
}
#包括
#包括第1期-----//
main(){/----第2期-----//
浮动a,b,摄氏度,华氏度;
int x;
printf(“按1:华氏到摄氏\n按2:摄氏到华氏\n”);
scanf(“%d”和&x);
开关(x)
{
案例1:
printf(“\n输入华氏温度值:”);
scanf(“%f”、&a);
摄氏度=5*(a-32)/9;
printf(“摄氏温度:%f\n”,摄氏度);
打破
案例2:
printf(“\n输入摄氏温度值:”);
scanf(“%f”和“b”);
华氏温度=((9*b)/5)+32;
printf(“华氏温度:%f\n”,华氏度);
打破
违约:
printf(“错误输入”);
}
getch();//----第3期-----//
返回(0);
}
第1期: 您的问题是,您试图在osx上编译最初为MS-DOS/Windows终端编写的代码。
conio.h
是为MS-DOS提供终端用户界面的头文件

您可以用
curses
lib替换您的问题

问题2: main的签名应该是
intmain(intargc,char**argv)


问题3:可能与问题1相关,
conio.h
不可用,因此其功能声明,包括
fetch
不可用

conio.h
不是标准的C头文件,因此不位于系统头文件的默认路径中。
conio.h
及其相关函数,等等都不规范。您是否正在使用针对DOS或Windows的教程或示例?1
conio
是Windows非标准C扩展。2.
main
的签名应该是
int main(void)
-旧书使用过时的定义。3.
getch()
位于前面提到的不可用的
conio
中。对于
main
,可以有0、1、2或3个参数,直到完整的
int main(int argc,char*argv[],char*envp[])
。在OP的例子中,
intmain(void)
是合适的-其他人可能会生成关于未使用参数的编译器警告。啊,难怪!谢谢你的快速回复!谢谢@WeatherVane第三个论点对我来说是新的。如果此答案对您有帮助,请将D4K标记为已回答。