From 869e68986aa8f69af6e7842260a68d1e5c6f796f Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:24:20 +0200 Subject: Add a bunch of code Signed-off-by: Carlos Maiolino --- CPP/fancy_greeting.cpp | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 CPP/fancy_greeting.cpp (limited to 'CPP/fancy_greeting.cpp') diff --git a/CPP/fancy_greeting.cpp b/CPP/fancy_greeting.cpp new file mode 100644 index 0000000..ea1aa4c --- /dev/null +++ b/CPP/fancy_greeting.cpp @@ -0,0 +1,88 @@ +#include +#include + +int main(void) { + + std::string name; + + std::cout << "Please enter your first name: "; + std::cin >> name; + + // Build the welcome msg + const std::string greeting = "Hello, " + name + "!"; + + // blank rows + const int pad = 1; + + // total number of rows to write 1 for greetings 2 for top and bottom + const int rows = pad * 2 + 3; + const std::string::size_type cols = greeting.size() + pad * 2 + 2; + + // Separate output from input + std::cout << std::endl; + + for (int r = 0; r != rows; r++) { + + // size_type, defined by string class, defines the name of the + // appropriate type for holding the number of chars in a string. + std::string::size_type c = 0; + + while (c != cols) { + if (r == pad + 1 && c == pad + 1) { + std::cout << greeting; + c += greeting.size(); + } else { + if (r == 0 || r == rows - 1 || + c == 0 || c == cols - 1) + std::cout << "*"; + else + std::cout << " "; + c++; + } + // write one or more chars + // adjust the value of c to maintain the invariant + } + // write a row of output + std::cout << std::endl; + } + + // build the second and fourth lines of the output + const std::string spaces(greeting.size(), ' '); + const std::string second = "* " + spaces + " *"; + + // build the first and fifth lines of the output + const std::string first(second.size(), '*'); + + // Write everything + std::cout << std::endl; + std::cout << first << std::endl; + std::cout << second << std::endl; + std::cout << "* " << greeting << " *" << std::endl; + std::cout << second << std::endl; + std::cout << first << std::endl; + + const std::string ex = "!"; + const std::string msg = "hello" + ex; + std::cout << msg << std::endl; + + { const std::string s = "a string"; + std::cout << s << std::endl; } + { const std::string s = "another string"; + std::cout << s << std::endl; } + + { const std::string s = "a string"; + std::cout << s << std::endl; + { const std::string s = "another string"; + std::cout << s << std::endl; }} + + std::cout << "What is your name? "; + std::string n; + std::cin >> n; + std::cout << "Hello, " << n + << std::endl << "And what is yours? "; + std::cin >> n; + std::cout << "Hello, " << n + << "; nice to meet you too!" << std::endl; + + return 0; +} -- cgit v1.2.3