Ergebnis 1 bis 18 von 18

Thema: C++ Fehler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Oder probier es so:
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        char name[20];
        cout<<"Hi! Ich bin dein PC! Wer bist du?\n";
        cin>>name;
        cout<<"Hallo "<<name;
    
        char a;
        cin>>a;
        return 0;
    }
    (Maximal 20 Buchstaben, keine Leerzeichen eingeben!)
    Ist etwas unflexibel, dafür ohne extra String-Header.

    Der Rückgabewert der Mainfunktion muss immer int sein. Dein Buch behandelt eine veraltete Schreibweise wie es früher mal gängig war, mit void.
    Die Parameter in der Main-Funktion von Ineluki kannst du auch weglassen, lass die Klammern einfach leer, ist einfacher. (Und afaik ist Lukis Variante eine C-Main-Funktion.)

    Return 0 bedeutet, dass die Funktion den Rückgabewert 0 zurückgibt. Wird genutzt um Fehler zurückzugeben, 0 bedeutet hier dann also, korrekt beendet, ohne Fehler.
    Merk dir einfach, wenn du später eigene Funktionen hast, kannst du per Return einen Wert zurückgeben lassen.

    Ansonsten hast du bei cout noch einmal die spitzen Klammern (<<) vergessen gehabt, sowie die alte Header-Schreibweise iostream.h ist veraltet. Hier gilt, ohne .h, dafür ein using namespace std; darunter schreiben.

  2. #2

    Users Awaiting Email Confirmation

    Zitat Zitat von Ynnus
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        char name[20];
        cout<<"Hi! Ich bin dein PC! Wer bist du?\n";
        cin>>name;
        cout<<"Hallo "<<name;
    
        char a;
        cin>>a;
        return 0;
    }
    Dies ist aber ein gefährlicher Lösungsansatz, der bei einem zu langen Namen zu einem Bufferoverflow und damit Programmabsturz führt. Solange der Applikationsbenutzer deine vorgegebenen Regeln einhält, ist alles im Lot. Allerdings sind Menschen keine Maschinen, und deshalb machen wir schneller Fehler als uns lieb ist.

    Code:
    char buffer[100];
    cin.get(buffer, 100, '\n');
    Mir ist klar, dass das Ganze natürlich nur ein Beispiel von dir war und daher nicht druchgängig hieb- und stichfest sein muss. Aber grade, wenn man einem Anfänger helfen will, sollte man imo (vielleicht dann sogar besonders) auf solche Tücken hinweisen.

    Küsschen,
    Feenstaub.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •