решить, является ли число действительным или целым, основываясь на содержимом очередей (операторы if)

Я читаю данные из файла, символ за символом, в конце чтения, я должен иметь возможность распечатать, если значение было действительным или целым числом.

Я прочитал данные с помощью get () и сохранил их в 2 разных очередях, если первая часть будет integerQueue, если ‘.’ считывается, затем переключите оставшиеся данные в realQueue. Затем распечатайте соответственно.

Возникли проблемы при печати. Просто продолжайте маркировать все в Integer: тогда правильное значение ….

else if(isdigit(temp) || temp == '.')
{
integerQueue.push(temp);
char temp2 = readFile.get();
while(isdigit(temp2))
{
integerQueue.push(temp2);
temp2 = readFile.get();
}
if( temp == '.')
{
realQueue.push(temp);
temp2 = readFile.get();
while(isdigit(temp2))
{
realQueue.push(temp2);
temp2 = readFile.get();
}
}
if(realQueue.empty())
{
writeFile <<"Integer:       ";
while(!integerQueue.empty())
{
writeFile <<integerQueue.front();
integerQueue.pop();
}
}
else
{
writeFile<<"Real:       ";
while(!integerQueue.empty())
{
writeFile <<integerQueue.front();
integerQueue.pop();
}
while(!realQueue.empty())
{
writeFile <<realQueue.front();
realQueue.pop();
}
}

0

Решение

10-я строка: if( temp == '.') — вы читаете первый символ, который входит в эту часть кода вместо последнего, который был прочитан (и тот, который в конечном итоге может привести к разрыву цикла while).
Вы должны проверить, равен ли temp2 ‘.’, А не temp.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]