_basic.c
Upload User: gzelex
Upload Date: 2007-01-07
Package Size: 707k
Code Size: 2k
Development Platform:

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  _basic.c
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. #include <LEDA/basic.h>
  12. #if defined(unix)
  13. #include <unistd.h>
  14. #include <sys/times.h>
  15. #include <sys/param.h>
  16. #if !defined(HZ)
  17. #define HZ 60
  18. #endif
  19. float used_time()
  20. { tms x;
  21.   times(&x);
  22.   return  float(x.tms_utime)/HZ;
  23. }
  24. #else
  25. #include <time.h>
  26. float used_time() { return  float(clock())/CLOCKS_PER_SEC; }
  27. #endif
  28. float used_time(float& T)
  29. { float t = T;
  30.   T =  used_time();
  31.   return  T-t;
  32. }
  33. void print_time() 
  34. { cout << string(" time = %.2f sec",used_time()) << endl; }
  35. void print_time(string s) 
  36. { cout << s; print_time(); }
  37. void wait(float sec) 
  38. #if defined(unix)
  39.     sleep(int(sec+0.5));
  40. #endif
  41.   //usleep(int(1000000*sec));
  42. }
  43.   
  44. //------------------------------------------------------------------------------
  45. // Input/Ouput
  46. //------------------------------------------------------------------------------
  47. int Yes(string s)
  48. { char answer = read_char(s);
  49.   return ((answer == 'y') || (answer == 'Y'));
  50. }
  51. int read_int(string s)
  52. { int answer;
  53.   char c;
  54.   for(;;)
  55.   { cout << s;
  56.     cin >> answer;
  57.     if (!cin) 
  58.       { cin.clear();
  59.         cin.get(c);
  60.         cout << string("read_int: illegal input "%c"n",c);
  61.         if (c != 'n') skip_line(cin);
  62.        }
  63.     else  
  64.        break;
  65.    }
  66.   skip_line(cin);
  67.   return answer;
  68. }
  69. char read_char(string s)
  70. { char c;
  71.   cout << s;
  72.   cin.get(c);
  73.   if (c != 'n') skip_line(cin);
  74.   return c;
  75. }
  76. double read_real(string s)
  77. { double answer;
  78.   cout << s;
  79.   cin >> answer;
  80.   skip_line(cin);
  81.   return answer;
  82. }
  83. string read_line(istream& in)
  84. { string result;
  85.   result.read_line(in); 
  86.   return result;
  87.  }
  88. string read_string(string s)
  89. { cout << s << flush;
  90.   return read_line(cin); 
  91.  }
  92. void skip_line(istream& s)
  93. { char c;
  94.   while(s.get(c) &&  c != 'n');
  95.  }
  96. int     Yes()              { return Yes(""); }
  97. int     read_int()         { return read_int(""); }
  98. char    read_char()        { return read_char(""); }
  99. double  read_real()        { return read_real(""); }
  100. string  read_string()      { return read_string(""); } 
  101. LEDA_SIG_PF catch_interrupts(LEDA_SIG_PF handler) 
  102. { error_handler(0,"catch_interrupts not implemented.");
  103.   return handler; 
  104.  }