From 2ec43b98cea7764fd96faf0fdf040e65c422d832 Mon Sep 17 00:00:00 2001 From: jorg-vr Date: Mon, 29 Jul 2024 16:19:20 +0200 Subject: [PATCH] Add file function test --- .../echo-function-file/solution/correct.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/exercises/echo-function-file/solution/correct.cpp diff --git a/tests/exercises/echo-function-file/solution/correct.cpp b/tests/exercises/echo-function-file/solution/correct.cpp new file mode 100644 index 00000000..3e722807 --- /dev/null +++ b/tests/exercises/echo-function-file/solution/correct.cpp @@ -0,0 +1,26 @@ +#include +#include +#include +#include +#include + +std::string trim(const std::string& str) { + std::string trimmed = str; + trimmed.erase(trimmed.begin(), std::find_if(trimmed.begin(), trimmed.end(), [](int ch) { + return !std::isspace(ch); + })); + trimmed.erase(std::find_if(trimmed.rbegin(), trimmed.rend(), [](int ch) { + return !std::isspace(ch); + }).base(), trimmed.end()); + return trimmed; +} + +std::string echo_file(const std::string& filename) { + std::ifstream file(filename); + if (!file) { + return "Error: Failed to open file."; + } + + std::string content((std::istreambuf_iterator(file)), std::istreambuf_iterator()); + return trim(content); +}