From 649b6168ef55b4f5f595a72a5c55bb1a79fe3ed9 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Mon, 7 Feb 2022 14:47:39 +0100 Subject: [PATCH] list initializer --- d01/ex04/Makefile | 5 +++-- d01/ex04/Sed.cpp | 32 ++++++++++++++++++++++++++++++++ d01/ex04/Sed.hpp | 27 +++++++++++++++++++++++++++ d01/ex04/main.cpp | 36 ++++++++++++++++++++---------------- d01/ex04/sed | Bin 26312 -> 33088 bytes 5 files changed, 82 insertions(+), 18 deletions(-) create mode 100644 d01/ex04/Sed.cpp create mode 100644 d01/ex04/Sed.hpp diff --git a/d01/ex04/Makefile b/d01/ex04/Makefile index 81dd985..495c03c 100644 --- a/d01/ex04/Makefile +++ b/d01/ex04/Makefile @@ -16,10 +16,11 @@ LIBS = INCLUDES = -I$(D_HEADERS) D_SRCS = . -SRCS = main.cpp +SRCS = main.cpp \ + Sed.cpp D_HEADERS = . -HEADERS = +HEADERS = Sed.hpp D_OBJS = builds OBJS = $(SRCS:%.cpp=$(D_OBJS)/%.o) diff --git a/d01/ex04/Sed.cpp b/d01/ex04/Sed.cpp new file mode 100644 index 0000000..748c9ca --- /dev/null +++ b/d01/ex04/Sed.cpp @@ -0,0 +1,32 @@ +#include "Sed.hpp" + +Sed::Sed(char *file, char *find, char *replacement) + : _file( file ) +// , _new_file( file.append(".replace") ) + , _find( find ) + , _replacement( replacement ) +{ + +// this->_buf = + return; + +} +Sed::~Sed() { + +// delete[] this->_buf; + return; + +} + +void Sed::replace() { + + std::ifstream file(this->_file.c_str()); + char c; + + while (file.get(c)) + { + std::cout << c; + } + +} + diff --git a/d01/ex04/Sed.hpp b/d01/ex04/Sed.hpp new file mode 100644 index 0000000..e197139 --- /dev/null +++ b/d01/ex04/Sed.hpp @@ -0,0 +1,27 @@ +#ifndef SED_HPP +# define SED_HPP + +#include +#include +#include + +class Sed { + +public: + + Sed(char *file, char *find, char *replacement); + ~Sed(); + + void replace( void ); + +private: + +// std::string _buf; + std::string const _file; + std::string const _new_file; + std::string const _find; + std::string const _replacement; + +}; + +#endif diff --git a/d01/ex04/main.cpp b/d01/ex04/main.cpp index e60f061..dbc34af 100644 --- a/d01/ex04/main.cpp +++ b/d01/ex04/main.cpp @@ -1,24 +1,28 @@ +#include "Sed.hpp" + #include #include -#include -int main() { +int sed_error(std::string msg) { - std::ifstream file("test.txt"); + std::cout << msg << std::endl; + return 1; +} - // read words separated by whitespaces or newlines -// std::string str; -// while (file >> str) -// std::cout << str << std::endl; +void cpp_sed(char **av) { - // skip whitespaces or newlines -// char c; -// while (file >> c) -// std::cout << c << std::endl; - - // seems good - char c; - while (file.get(c)) - std::cout << c; + Sed sed(av[1], av[2], av[3]); + + sed.replace(); + +} + +int main(int ac, char **av) { + + if (ac != 4) + return sed_error("you must provide 3 parameters : "); + cpp_sed(av); + + return 0; } diff --git a/d01/ex04/sed b/d01/ex04/sed index a25404343766beb60d9fa7d55c8bc86d9e2459a0..df9acd25764587661983e50d3be759ef3825d60b 100755 GIT binary patch literal 33088 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�?@lPtH!GH{p8-|ppi_CW?WWPomQu2eMhzri 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