diff options
Autocommit at 13.06.2022 @ 20:52
4 files changed, 12 insertions, 0 deletions
| -rw-r--r-- | src/Models/CellDouble.cpp | 5 | ||||
| -rw-r--r-- | src/Models/CellDouble.h | 1 | ||||
| -rw-r--r-- | src/Models/CellInt.cpp | 5 | ||||
| -rw-r--r-- | src/Models/Table.cpp | 1 |
diff --git a/src/Models/CellDouble.cpp b/src/Models/CellDouble.cpp index e0e1740..0ec3b3f 100644 --- a/src/Models/CellDouble.cpp +++ b/src/Models/CellDouble.cpp @@ -5,6 +5,11 @@ CellDouble::CellDouble(double value) { this->value = value; } +CellDouble::CellDouble(const char* str) { + value = 0; + +} + double CellDouble::getNumeralValue() const { return value; } diff --git a/src/Models/CellDouble.h b/src/Models/CellDouble.h index 080f65b..5f7cc47 100644 --- a/src/Models/CellDouble.h +++ b/src/Models/CellDouble.h @@ -9,6 +9,7 @@ class CellDouble : public Cell { public: CellDouble() = default; CellDouble(double value); + CellDouble(const char* str); double getNumeralValue() const override; String getValueForPrint() const override; diff --git a/src/Models/CellInt.cpp b/src/Models/CellInt.cpp index 827f346..a20c5ed 100644 --- a/src/Models/CellInt.cpp +++ b/src/Models/CellInt.cpp @@ -7,8 +7,13 @@ CellInt::CellInt(int value) { CellInt::CellInt(const char* str) { value = 0; + bool negative = *str == '-'; + if (*str == '-' || *str == '+') str++; + while (*str != '\0') value = value * 10 + '0' - *(str++); + + if (negative) value *= -1; } double CellInt::getNumeralValue() const { diff --git a/src/Models/Table.cpp b/src/Models/Table.cpp index ddadc45..1ba3daa 100644 --- a/src/Models/Table.cpp +++ b/src/Models/Table.cpp @@ -59,6 +59,7 @@ void Table::readFromFile(std::ifstream& inFile) { if (inFile.peek() == '.') { inFile.get(); D(inFile, buffer); + cells[0][0] = (Cell*)new CellDouble(buffer.raw_data()); } else cells[0][0] = (Cell*)new CellInt(buffer.raw_data()); |
