programmieren c++?

5 Antworten

Alles, was du für die Aufgabe brauchst, sind die Objekte cin und cout (sowie einen Import von iostream, wie schon in deiner vorherigen Frage erwähnt).

std::string word;
std::cin >> word;

std::cout << word;

Über cin bekommst du Eingaben von der Konsole und kannst sie in einer Variable speichern (hier z.B. word).

Über cout kannst du Werte (z.B. Strings) wiederum an die Konsole für eine Ausgabe liefern.


Reisender4000  18.10.2021, 02:48

Nicht genug Klassen und externe Libraries mmn

0
Thena03 
Beitragsersteller
 18.10.2021, 02:40

leider funktionieren diese objekte irgendwie nicht hab alles probiert trotzdem fehler

0
unsignedInt  18.10.2021, 04:20
@Thena03

Was bedeutet "alles"? Hättest Du wirklich alles probiert, würde das Programm jetzt laufen. Unter "alles" fällt dabei auch eine wirklich, wirklich einfache Google-Suche.

1
Bitte nur hilfreiche antworten nicht wie guck selber, google selber etc.

Einfach nur die Lösung zu geben ist jedoch nicht hilfreich, denn dadurch lernst du nichts ...

Informiere dich doch Mal über die Standardeingabe und Standardausgabe. Stichwort cin und cout. Damit solltest du genug finden, um die Aufgabe lösen zu können


Reisender4000  18.10.2021, 02:16

Was hältst du von meiner Version oben? Es fehlen natürlich noch ein paar Interfaces aber es ist sehr skalierbar und hochprofessionell 👌

1
#include <iostream>
using namespace std;
int main() {
  char name[256];
  cout << "Enter your name: ";
  cin >> name;
  cout << "Hello " << name << endl;
  return 0;
}

Mit cout gibst du den Text auf der Konsole aus.

Mit cin verweist du den Wert in eine Variable.

Du kannst

using namespace std;

benutzen, musst du aber nicht, es spart "std::". Ohne würde es so aussehen:

std::cout << "Hallo";
std::cin >> variable;

Dieser Code macht das:

#include <any>
#include <format>
#include <iostream>
#include <memory>
#include <vector>
#include <string>


class c_stream_ctrl {
public:
    c_stream_ctrl() {};
    ~c_stream_ctrl() {};


    bool is_input_valid(std::string_view input) {
        return (!input.empty() && input.size() < input.max_size());
    }


    template<typename ... t>
    __forceinline void print(std::string_view fmt, bool insert_newline, t... args) {
        std::string formatted_str{ };

        _args.push_back(args...);
        if (!_args.empty())
            formatted_str = std::format(fmt, args...);
        else 
            formatted_str = fmt;

        if (is_input_valid(formatted_str)) {
            for (auto& c : formatted_str)
                std::cout << c;
            if (insert_newline)
                std::cout << '\n';
        }
    }


    template<typename t>
    __forceinline void get(t& arg) {
        std::cin >> arg;
        _args.push_back(arg);
    }


private:
    std::string _fmt{ };
    std::vector<std::any> _args{ };
};


int main() {
    const auto ctrl = std::make_unique<c_stream_ctrl>();
    std::string input;
    ctrl->get(input);
    ctrl->print("Hallo {}", false, input);
}

Schachpapa  18.10.2021, 08:57

Nur dass ihr niemand glauben wird, dass sie das selbst gemacht hat.

Wenn's bei meinen Kindern mit den Hausaufgaben mal echt knapp war, hat meine Frau das manchmal mit links geschrieben, damit die Schrift kindlicher aussah.

Inzwischen haben die beiden großen Abitur ...

0
Reisender4000  18.10.2021, 17:32
@Schachpapa

Ich wollte so sehr overengineeren wie möglich, einfach die echte Lösung geben ist langweilig

1