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