fig18_06.cpp

来自「经典vc教程的例子程序」· C++ 代码 · 共 49 行

CPP
49
字号
// Fig. 18.6: fig18_06.cpp
// Using signal handling 
#include <iostream.h>
#include <iomanip.h>
#include <signal.h>
#include <stdlib.h>
#include <time.h>

void signal_handler( int );

int main()
{
   signal( SIGINT, signal_handler );
   srand( time( 0 ) );
   
   for ( int i = 1; i < 101; i++ ) {
      int x = 1 + rand() % 50;
      
      if ( x == 25 )
         raise( SIGINT );
         
      cout << setw( 4 ) << i;

      if ( i % 10 == 0 )
         cout << endl;
   }

   return 0;
}

void signal_handler( int signalValue )
{
   cout << "\nInterrupt signal (" << signalValue
        << ") received.\n"
        << "Do you wish to continue (1 = yes or 2 = no)? ";

   int response;
   cin >> response;

   while ( response != 1 && response != 2 ) {
      cout << "(1 = yes or 2 = no)? ";
      cin >> response;
   }
   
   if ( response == 1 )
      signal( SIGINT, signal_handler );
   else
      exit( EXIT_SUCCESS );
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?