Fixed assignment of double to MString.

This commit is contained in:
brad Arant 2024-07-08 18:27:05 -07:00
parent 1cfdc23a57
commit 363a6aa496
5 changed files with 36 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#include "Log.h" #include "Log.h"
#include "uuid/uuid.h" #include "uuid/uuid.h"
#include <cstring> #include <cstring>
#include <string>
#include <iomanip> #include <iomanip>
#include <stdlib.h> #include <stdlib.h>
@ -80,6 +81,13 @@ namespace coreutils {
this->length = fread(this->data, 1000000, 1000000, file); this->length = fread(this->data, 1000000, 1000000, file);
cursor = this->data; cursor = this->data;
} }
MString::MString(double value) {
std::string data = std::to_string(value);
setSize(data.length());
memcpy(this->data, (char *)data.c_str(), data.length());
cursor = this->data;
}
MString::~MString() { MString::~MString() {
if (data) if (data)
@ -120,6 +128,14 @@ namespace coreutils {
*data = value; *data = value;
return *this; return *this;
} }
MString &MString::operator=(double value) {
std::string data = std::to_string(value);
setSize(data.length());
memcpy(this->data, (char *)data.c_str(), data.length());
cursor = this->data;
return *this;
}
MString &MString::operator<<(const char *value) { MString &MString::operator<<(const char *value) {
int temp = length; int temp = length;

View File

@ -81,6 +81,12 @@ namespace coreutils {
/// ///
MString(std::FILE *file); MString(std::FILE *file);
///
///
///
MString(double value);
/// ///
/// ///
@ -117,6 +123,12 @@ namespace coreutils {
MString &operator=(char data); MString &operator=(char data);
///
/// Assignment operator for saving a double value..
///
MString &operator=(double value);
/// ///
/// ///
/// ///

Binary file not shown.

View File

@ -81,6 +81,14 @@ int main(int argc, char **argv) {
// coreutils::MString test24 = std::endl; // coreutils::MString test24 = std::endl;
// std::cout << "mstring << endl: " << test24 << std::endl; // std::cout << "mstring << endl: " << test24 << std::endl;
coreutils::MString test25 = 3.14159;
std::cout << "float: " << test25 << std::endl;
coreutils::MString test26;
double test27 = 4.0f;
test26 = test27;
std::cout << "float: " << test26 << std::endl;
return 0; return 0;
} }

Binary file not shown.