Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / String / String.cpp
diff options
context:
space:
mode:
1 files changed, 16 insertions, 2 deletions
-rw-r--r--src/Generic/String/String.cpp18
diff --git a/src/Generic/String/String.cpp b/src/Generic/String/String.cpp
index 0b3bf1f..6b50c64 100644
--- a/src/Generic/String/String.cpp
+++ b/src/Generic/String/String.cpp
@@ -68,6 +68,16 @@ String& String::operator=(String&& other) {
return *this;
}
+void String::read(std::istream& istr) {
+ istr.read((char*)&length, sizeof(length));
+ istr.read(str, sizeof(char) * length);
+}
+
+void String::write(std::ostream& ostr) const {
+ ostr.write((char*)&length, sizeof(length));
+ ostr.write(str, sizeof(char) * length);
+}
+
int String::compare(const String& other) const {
return strcmp(str, other.str);
}
@@ -77,8 +87,12 @@ char& String::operator[](unsigned index) {
}
std::istream& operator>>(std::istream& istr, String& event) {
- istr >> event.str;
+ istr.getline(event.str, 1024);
+ event.length = strlen(event.str);
return istr;
}
-friend std::ostream& operator<<(std::ostream& ostr, const String& event);
+
+std::ostream& operator<<(std::ostream& ostr, const String& event) {
+ return ostr << event.str;
+}