#include <setjmp.h>
#include <stdio.h>
jmp_buf envBuf; //environment buffer
int main(void)
{
int dividend, divisor;
if ( setjmp(envBuf) )
{
puts("Enter a number.");
getchar();
}
printf("Dividend: ");
if (scanf("%d", ÷nd) != 1) longjmp(envBuf, 1);
switch ( setjmp(envBuf) )
{
case 0: break;
case 1: puts("Enter a number."); getchar(); break;
case 2: puts("Divided by zero."); break;
default: puts("Unknown error."); break;
}
printf("Divisor: ");
if (scanf("%d", &divisor) != 1) longjmp(envBuf, 1);
if (divisor == 0) longjmp(envBuf, 2);
printf("%d / %d = %d", dividend, divisor, dividend / divisor);
return 0;
}
setjmp
Leave a Reply
You must be logged in to post a comment.