本文整理汇总了C++中Real::setLiteral方法的典型用法代码示例。如果您正苦于以下问题:C++ Real::setLiteral方法的具体用法?C++ Real::setLiteral怎么用?C++ Real::setLiteral使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Real
的用法示例。
在下文中一共展示了Real::setLiteral方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getNumber
void Scanner::getNumber(char *str, char *token_ptr)
{
/*
Write some code to Extract the number and convert it to a literal number.
*/
char ch = *line_ptr;
bool int_type = true;
do
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
while (char_table[ch] == DIGIT);
if (ch == '.')
{
//Then we might have a dot or dotdot
ch = *(++line_ptr);
if (ch == '.')
{
//We have a dotdot, back up ptr and our number is an int.
int_type = true;
--line_ptr;
}
else
{
int_type = false;
*(token_ptr++) = '.';
//We have a floating point number
do
{
*(token_ptr++) = ch;
ch = *(line_ptr++);
}
while (char_table[ch] == DIGIT);
}
}
if (ch == 'e' || ch == 'E')
{
int_type = false;
*(token_ptr++) = ch;
ch = *(++line_ptr);
if (ch == '+' || ch == '-')
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
do
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
while (char_table[ch] == DIGIT);
}
*token_ptr = '\0';
new_token->setCode(NUMBER);
if (int_type)
{
Integer* integer = new Integer();
integer->setLiteral((int)atoi(str));
new_token = integer;
}
else
{
Real* real = new Real();
real->setLiteral((float)atof(str));
new_token = real;
}
}