From df7ffd0aebe6cf3c97526f9d1b26f5205e42dede Mon Sep 17 00:00:00 2001 From: adjoly Date: Wed, 9 Apr 2025 10:33:31 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat:=20should=20?= =?UTF-8?q?have=20finished=20ex00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ex00/GetType.cpp | 41 ++++++++++++++++++++++++++++++ ex00/GetType.hpp | 28 +++++++++++++++++++++ ex00/Makefile | 4 +-- ex00/PrintNb.hpp | 37 +++++++++++++++++++++++++--- ex00/ScalarConverter | Bin 0 -> 29752 bytes ex00/ScalarConverter.cpp | 52 +++++++++++++++++++++++++++++++++++---- ex00/ScalarConverter.hpp | 18 ++------------ ex00/StrTo.cpp | 16 ++++++++++++ ex00/StrTo.hpp | 20 +++++++++++++++ ex00/main.cpp | 11 ++++++--- 10 files changed, 198 insertions(+), 29 deletions(-) create mode 100644 ex00/GetType.cpp create mode 100644 ex00/GetType.hpp create mode 100755 ex00/ScalarConverter create mode 100644 ex00/StrTo.cpp create mode 100644 ex00/StrTo.hpp diff --git a/ex00/GetType.cpp b/ex00/GetType.cpp new file mode 100644 index 0000000..2991d41 --- /dev/null +++ b/ex00/GetType.cpp @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* GetType.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/09 09:05:44 by adjoly #+# #+# */ +/* Updated: 2025/04/09 09:18:37 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "GetType.hpp" +#include +#include + +bool _isNan(const std::string &str) { + if (str == "nan" || str == "nanf" || str == "-inf" || str == "-inff" || + str == "+inf" || str == "+inff" || str == "inf" || str == "inff") + return true; + return false; +} + +nbType GetType(const std::string &str) { + if (_isNan(str)) + return NAN; + if (str.length() == 1 && !isdigit(str[0])) + return CHAR; + + char *err; + + (void)strtol(str.c_str(), &err, 10); + if (*err == 0) + return INT; + (void)strtod(str.c_str(), &err); + if (*err == 0) + return DOUBLE; + if (*err == 'f' && *(err + 1) == 0) + return FLOAT; + return NONE; +} diff --git a/ex00/GetType.hpp b/ex00/GetType.hpp new file mode 100644 index 0000000..60a6c51 --- /dev/null +++ b/ex00/GetType.hpp @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* GetType.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/09 09:04:39 by adjoly #+# #+# */ +/* Updated: 2025/04/09 09:55:16 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include + +enum nbType { + CHAR, + INT, + FLOAT, + DOUBLE, + NAN, + NONE +}; + +bool _isNan(const std::string &); + +nbType GetType(const std::string &); diff --git a/ex00/Makefile b/ex00/Makefile index 5636370..62aabd3 100644 --- a/ex00/Makefile +++ b/ex00/Makefile @@ -6,13 +6,13 @@ # By: adjoly +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/25 16:09:27 by adjoly #+# #+# # -# Updated: 2025/03/30 15:14:32 by adjoly ### ########.fr # +# Updated: 2025/04/09 10:23:51 by adjoly ### ########.fr # # # # **************************************************************************** # SHELL = bash -NAME = Form +NAME = ScalarConverter CC = c++ diff --git a/ex00/PrintNb.hpp b/ex00/PrintNb.hpp index f80ac5f..cd2670e 100644 --- a/ex00/PrintNb.hpp +++ b/ex00/PrintNb.hpp @@ -6,23 +6,54 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/08 14:30:07 by adjoly #+# #+# */ -/* Updated: 2025/04/08 14:30:36 by adjoly ### ########.fr */ +/* Updated: 2025/04/09 10:32:48 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #pragma once +#include #include +#include +#include template void _printFloat(T nb) { std::cout << "float: " << static_cast(nb) << "f" << std::endl; } template void _printInt(T nb) { - std::cout << "int: " << static_cast(nb) << std::endl; + std::cout << "int: "; + + if (nb < std::numeric_limits::min() || + nb > std::numeric_limits::max()) + std::cout << "impossible" << std::endl; + else + std::cout << static_cast(nb) << std::endl; } template void _printChar(T nb) { - std::cout << "char: '" << static_cast(nb) << "'" << std::endl; + std::cout << "char: "; + if (nb < std::numeric_limits::min() || + nb > std::numeric_limits::max()) + std::cout << "impossible" << std::endl; + else if (!isprint(nb)) + std::cout << "Non displayable" << std::endl; + else + std::cout << "'" << static_cast(nb) << "'" << std::endl; } template void _printDouble(T nb) { std::cout << "double: " << static_cast(nb) << std::endl; } +template T _ConvertTo(const std::string &str) { + std::stringstream ss(str); + T ret; + + ss >> ret; + return ret; +} +template void _Convert(const std::string &str) { + T nb = _ConvertTo(str); + + _printChar(nb); + _printInt(nb); + _printFloat(nb); + _printDouble(nb); +} diff --git a/ex00/ScalarConverter b/ex00/ScalarConverter new file mode 100755 index 0000000000000000000000000000000000000000..2eb3a3660d0bffba34d53ca2be06ba9ea9c8c70c GIT binary patch literal 29752 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/03 19:59:17 by adjoly #+# #+# */ -/* Updated: 2025/04/08 14:17:44 by adjoly ### ########.fr */ +/* Updated: 2025/04/09 10:31:41 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ScalarConverter.hpp" +#include "GetType.hpp" +#include "PrintNb.hpp" +#include "StrTo.hpp" void _log(std::string emoji, std::string what, std::string who, std::string str) { @@ -40,8 +43,47 @@ ScalarConverter::~ScalarConverter(void) { _log("➖", "ScalarConverter", "", "destructor called"); } -ScalarConverter &ScalarConverter::operator=(const ScalarConverter &) { return *this; } - -void ScalarConverter::convert(std::string &s) { - +ScalarConverter &ScalarConverter::operator=(const ScalarConverter &) { + return *this; +} + +void _ConvertNan(const std::string &str) { + std::string nb; + + if (str[0] == 'n') + nb = "nan"; + else if (str[0] == '-') + nb = "-inf"; + else + nb = "+inf"; + + std::cout << "char: impossible" << std::endl; + std::cout << "int: impossible" << std::endl; + std::cout << "float: " << nb << "f" << std::endl; + std::cout << "double: " << nb << std::endl; +} + +void ScalarConverter::convert(const std::string &s) { + nbType type = GetType(s); + + switch (type) { + case CHAR: + _Convert(s); + break; + case INT: + _Convert(s); + break; + case FLOAT: + _Convert(s); + break; + case DOUBLE: + _Convert(s); + break; + case NAN: + _ConvertNan(s); + break; + case NONE: + std::cout << s << " does not convert to any type" << std::endl; + break; + }; } diff --git a/ex00/ScalarConverter.hpp b/ex00/ScalarConverter.hpp index 822c9b3..f7daad2 100644 --- a/ex00/ScalarConverter.hpp +++ b/ex00/ScalarConverter.hpp @@ -6,18 +6,17 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/03 19:38:39 by adjoly #+# #+# */ -/* Updated: 2025/04/08 14:29:28 by adjoly ### ########.fr */ +/* Updated: 2025/04/09 10:31:49 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #pragma once -#include #include class ScalarConverter { public: - static void convert(std::string &); + static void convert(const std::string &); private: ScalarConverter(void); @@ -25,17 +24,4 @@ class ScalarConverter { ~ScalarConverter(void); ScalarConverter &operator=(const ScalarConverter &); - - template void _printFloat(T nb) { - std::cout << "float: " << static_cast(nb) << "f" << std::endl; - } - template void _printInt(T nb) { - std::cout << "int: " << static_cast(nb) << std::endl; - } - template void _printChar(T nb) { - std::cout << "char: '" << static_cast(nb) << "'" << std::endl; - } - template void _printDouble(T nb) { - std::cout << "double: " << static_cast(nb) << std::endl; - } }; diff --git a/ex00/StrTo.cpp b/ex00/StrTo.cpp new file mode 100644 index 0000000..fd8ecdb --- /dev/null +++ b/ex00/StrTo.cpp @@ -0,0 +1,16 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* StrTo.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/09 09:59:23 by adjoly #+# #+# */ +/* Updated: 2025/04/09 10:19:50 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "StrTo.hpp" +#include +#include + diff --git a/ex00/StrTo.hpp b/ex00/StrTo.hpp new file mode 100644 index 0000000..af174af --- /dev/null +++ b/ex00/StrTo.hpp @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* StrTo.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/09 09:24:16 by adjoly #+# #+# */ +/* Updated: 2025/04/09 10:19:50 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include + +char _ToChar(const std::string &); +int _ToInt(const std::string &); +float _ToFloat(const std::string &); +double _ToDouble(const std::string &); diff --git a/ex00/main.cpp b/ex00/main.cpp index dcdb068..0f1d542 100644 --- a/ex00/main.cpp +++ b/ex00/main.cpp @@ -6,12 +6,17 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/03 19:38:09 by adjoly #+# #+# */ -/* Updated: 2025/04/03 19:51:28 by adjoly ### ########.fr */ +/* Updated: 2025/04/09 10:31:55 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ScalarConverter.hpp" +#include -int main(void) { - +int main(int ac, char **av) { + if (ac < 2) { + std::cout << "needs an input ! :D" << std::endl; + return 1; + } + ScalarConverter::convert(av[1]); }