\xxx是当成 3 octal digits吗`解决方法

\xxx是当成 3 octal digits吗`?
顺便帮我看下下面程序,感觉这个程序有问题,如果\xxx真的是当成   3   octal   digits,那么转成int后会再调用digit,等下这个int会因为> base(等于8)而出错  


#include   <limits>
#include   <stdexcept>
#include   <string>
#include   <stdio.h>

#if   0
using   std::domain_error;
using   std::range_error;
using   std::string;
#endif

namespace   {
      inline   int   digit(char   c,   int   base)   {
            int   value;
            switch   (c)   {
                  case   '0 ':   value   =   0;   break;
                  case   '1 ':   value   =   1;   break;
                  case   '2 ':   value   =   2;   break;
                  case   '3 ':   value   =   3;   break;
                  case   '4 ':   value   =   4;   break;
                  case   '5 ':   value   =   5;   break;
                  case   '6 ':   value   =   6;   break;
                  case   '7 ':   value   =   7;   break;
                  case   '8 ':   value   =   8;   break;
                  case   '9 ':   value   =   9;   break;
                  case   'a ':   case   'A ':   value   =   10;   break;
                  case   'b ':   case   'B ':   value   =   11;   break;
                  case   'c ':   case   'C ':   value   =   12;   break;
                  case   'd ':   case   'D ':   value   =   13;   break;
                  case   'e ':   case   'E ':   value   =   14;   break;
                  case   'f ':   case   'F ':   value   =   15;   break;
                  default:
                        throw   domain_error(string( "invalid   digit "));
            }
            if   (value> =base)
                  throw   domain_error(string( "invalid   digit "));
            return   value;
      }

      inline   char   next_char(char   const   *&p)   {