diff --git a/main.cpp b/main.cpp index 4ccc7e1..723868c 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,6 @@ #include #include +using namespace std; int main() { // Open file in binary input mode @@ -13,11 +14,31 @@ int main() { unsigned int num_strings; // TODO: Read number of strings // Hint: file.read((char *)&num_strings, sizeof(num_strings)); + file.read((char *)&num_strings, sizeof(num_strings)); + std::cout << "Number of strings: " << num_strings << std::endl; + // TODO: Add loop to: // 1. Read string length // 2. Read string characters // 3. Print string + for (unsigned int i = 0; i < num_strings; i++) { + unsigned int str_len; + + // Read length of string (including null terminator) + file.read((char *)&str_len, sizeof(str_len)); + + // Create buffer and read string + char* buffer = new char[str_len]; + file.read(buffer, str_len); + + // Print string (stop at null terminator) + std::cout << "String " << (i + 1) << " (length " << (str_len - 1) + << "): " << buffer << std::endl; + + // Clean up + delete[] buffer; + } file.close(); return 0;