diff options
Autocommit at 14.06.2022 @ 07:58
2 files changed, 4 insertions, 2 deletions
| -rw-r--r-- | src/Models/CellFormula.cpp | 4 | ||||
| -rw-r--r-- | src/Models/Table.cpp | 2 |
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp index 95fc3eb..92bb701 100644 --- a/src/Models/CellFormula.cpp +++ b/src/Models/CellFormula.cpp @@ -25,7 +25,7 @@ double CellFormula::calculate(unsigned index) const { switch (-formula[index++].right) { case '+' : numVal += ptrByInd(formula[index].left)->getNumeralValue(); break; case '*' : numVal *= ptrByInd(formula[index].left)->getNumeralValue(); break; - case '/' : if (ptrByInd(formula[index].left)->getNumeralValue() == 0) throw std::logic_error(""); + case '/' : if (ptrByInd(formula[index].left)->getNumeralValue() == 0) throw std::logic_error("Error: Divion by zero!"); numVal /= ptrByInd(formula[index].left)->getNumeralValue(); break; case '^' : numVal = pow(numVal, ptrByInd(formula[index].left)->getNumeralValue()); break; } @@ -36,7 +36,7 @@ double CellFormula::calculate(unsigned index) const { case '+' : return numVal + calculate(++index); case '*' : return numVal * calculate(++index); case '/' : temp = calculate(++index); - if (temp == 0) throw std::logic_error(""); + if (temp == 0) throw std::logic_error("Error: Division by zero!"); return numVal / temp; case '^' : return pow(numVal, calculate(++index)); case '\0' : diff --git a/src/Models/Table.cpp b/src/Models/Table.cpp index cfd8ee1..d1b2cc0 100644 --- a/src/Models/Table.cpp +++ b/src/Models/Table.cpp @@ -87,6 +87,7 @@ void Table::readFromFile(std::ifstream& inFile) { if (inFile.peek() == '.') { buffer.add(inFile.get()); D(inFile, buffer); + buffer.add('\0'); W(inFile); if (inFile.peek() != ',') throwException(inFile, row); @@ -95,6 +96,7 @@ void Table::readFromFile(std::ifstream& inFile) { cells[row].add((Cell*)new CellDouble(buffer.raw_data())); } else { + buffer.add('\0'); W(inFile); if (inFile.peek() != ',') throwException(inFile, row); inFile.get(); |
