Utils_1.cpp
上传用户:speoil
上传日期:2021-10-06
资源大小:100k
文件大小:1k
源码类别:

3G开发

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <iostream.h>
  5. #include <fstream.h>
  6. #include <ctype.h>
  7. #include <wchar.h>
  8. #include "Utils_1.h"
  9. ////////////////////////////////////////////////////////////////////////////
  10. //
  11. // Cout
  12. //
  13. ////////////////////////////////////////////////////////////////////////////
  14. reportbuf ReportBuf;
  15. ostream ReportOut(&ReportBuf);
  16. ////////////////////////////////////////////////////////////////////////////
  17. //
  18. // General purpose functions
  19. //
  20. ////////////////////////////////////////////////////////////////////////////
  21. inline BOOLEAN is_double_digit(int c)
  22. {
  23.   return (isdigit(c) || (c == '.') || (c == '-') || (c == '+') || (c == 'e'));
  24. }
  25. ifstream &operator>>(ifstream &file, double &d)
  26. {
  27.   static char buffer[100];
  28.   int i = 0;
  29.   while (!is_double_digit(file.peek()))
  30.     file.get();
  31.   do
  32.       file >> buffer[i++];
  33.   while(is_double_digit(file.peek()));
  34.   buffer[i] = '';
  35.   d = atof(buffer);
  36.   return file;
  37. }
  38. ifstream &operator>>(ifstream &file, int &num)
  39. {
  40.   static char buffer[100];
  41.   int i = 0;
  42.   while (!is_double_digit(file.peek()) || (file.peek() == 'e'))
  43.     file.get();
  44.   do
  45.       file >> buffer[i++];
  46.   while(is_double_digit(file.peek()));
  47.   buffer[i] = '';
  48.   num = atoi(buffer);
  49.   return file;
  50. }
  51. int uniform_random(int p_max)
  52. // Returns an integer between 0 and p_max - 1
  53. {
  54.   return (int)floor(my_rand() * (double)p_max);
  55. }