2011-10-08 83 views
-3

C中是否有try语句?我想制作一个梯形的“面积计算器”。我希望用户只输入数字:尝试在C中声明?

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

main() 
{ 
clrscr(); 
float base1, base2, height, area; 
printf("This program will compute the area of your trapezoid. Enjoy!"); 
printf("\n\tPlease enter the length of base1: "); 
scanf("%f", &base1); 
printf("\tPlease enter the length of base2: "); 
scanf("%f", &base2); 
printf("\tPlease enter the length of height: "); 
scanf("%f", &height); 
area = (base1 + base2) * h/2; 
printf("\nThe area of your trapezoid is: ", area); 
getch(); 
} 

但随后,他们输入非数字数据的自由。这样做会使程序崩溃。我能做些什么来检查它是否是正确的数据?我相信这可以通过一个循环来完成,但由于有一个程序有很多解决方案,我怀疑我的效率最高。

+0

“列表X的”问题并不是一个非常适合于计算器的Q&你可以犯错**尝试的一种格式 – Flexo

+0

**呢?尽管如此。如果你看,你可以很容易地找到答案。但是,您应该更改问题的第二部分以更加精确。 –

回答

1

不,它不需要

一般 try语句只在面向对象的语言如Python,C存在++,Objective-C中,C#,Visual Basic中,爪哇等

+0

这与语言是否面向对象无关。例如,您也可以在功能语言中找到这样的声明。 –

+2

我不确定OO和异常处理之间的关系。以Perl和Haskell为例。两者都有某种形式的尝试陈述(可能由图书馆提供),但我怀疑它们可以被描述为“面向对象”。 – jpalecek

1

错误处理在C中明确表示,其中if()goto。异常处理(例如除以0)取决于底层内核(Unix上的信号处理,大多数RTOS上的CPU陷阱处理)。

Ada有一个exception机制,能够以raise用户定义的异常。