Anfänger Braucht Hilfe in C++



  • Hi leute ich bin noch neu kenne mich noch net so mit C++ habe mich so bischen mit der hilfe durchgefightet will eine Konsolen anwendung schreiben so eine art Chat bot aber mein code macht net das was es soll ich will zuerst den namen einlesen und dann eine von 7 Möglichen antworten ausgeben und das dann auch mit dem Alter aber das macht er nicht er liest den namen ein und dann kann ich so oft ENTER drücken wie ich will er macht nix mehr HILFE???

    Das ist mein code:

    #pragma hdrstop
    #include <condefs.h>
    #include <windows.h>
    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    
    //---------------------------------------------------------------------------
    int main ()
    {
    randomize ();
    char a [5000]; 
    char b [5000];
    int i=rand()%7; 
    int u=rand()%7;
    
    //----------------------------Name Block---------------------------------------
    
    system ("color 1a");
    cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"<<'\n;
    cout<<"       Wilkommen Dieses Programm is Made by ****** *.'\n';
    cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"<<'\n';
    
    //Random auswahl an Antworten
    
    char * Name []= {"Willkommen ", //Möglichkeit 1
                      "Hallo ",    //Möglichkeit 2
                      "Na wie gehts ",   //Möglichkeit 3
                      "Freut mich dich Kennen zu Lernen ",  //Möglichkeit 4
                      "Moin ", //Möglichkeit 5
                      "Coole sache dich kennen zu Lernen ",  //Möglichkeit 6
                      "Freune mich auf unsere unterhaltung ",  //Möglichkeit 7
                      };
    
                      //Namenes Einlesung
    cout<<"Hey Ich bin Mischa und wie heist du?"<<'\n';
    cin>>a;
    system("cls");
    
    //Random Ausgabe einer der 7 möglichkeiten und dahinter den namen der eingegeben wurde!
    cout<<Name[i];
    cout<<a<<'\n';
    
    //----------------------Alter Block---------------------------------------------
    
    char * Alter []= {"Darf Ich fragen wie alt du bist? ", //Möglichkeit 1
                      " ",    //Möglichkeit 2
                      " ",   //Möglichkeit 3
                      " ",  //Möglichkeit 4
                      " ", //Möglichkeit 5
                      " ",  //Möglichkeit 6
                      " ",  //Möglichkeit 7
                      };
    
                      //Alter Einlesung
    cin>>b;
    system("cls");
    
    //Random Ausgabe einer der 7 möglichkeiten und dahinter den namen der eingegeben wurde!
    cout<<Alter[u];
    cout<<b<<'\n';
    
            getch();
    
            }
    


  • Hallo

    1. Dieses Problem betrifft nicht den BCB, denn du schreibst ja ein C++ - Konsolenprogramm.

    2. statt

    char a [5000]; 
    char b [5000];
    

    solltest du lieber

    char *a; 
    char *b;
    

    nehmen

    3. warum nimmst du zwei Integer? Du brauchst doch nur eine, die du nach jedem einsatz neu mit einer Zufallszahl belegtst

    4. Dir ist klar, das beim Alter bloß eine von sieben Möglichkeiten mit einem String belegt ist, und du so einen leeren String ausgeben kannst?

    bis bald
    akari



  • @akari
    Und dir ist hoffentlich klar, dass bei deinem Vorschlag 2 auf nicht allozierten Speicher zugegriffen wird, da für a und b kein Speicher vereinbart wurde.
    Ich würde statt char* lieber std::string vorschlagen.



  • Hallo

    Und dir ist hoffentlich klar, dass bei deinem Vorschlag 2 auf nicht allozierten Speicher zugegriffen wird, da für a und b kein Speicher vereinbart wurde.
    Ich würde statt char* lieber std::string vorschlagen.

    sorry, zu char* gehört noch ein malloc, das ist mir schon keine Erwähnung mehr wert...
    str::string ist natürlich noch besser, aber ich wollte nicht zu viel verlangen...

    bis bald
    akari



  • std::string a[5000];
    std::string b[5000];
    

    ???

    und dann sollte es gehen also bei mir spuck der da nur ein cod aus 012441 usw.

    ist das die lösung meines problems?

    MFG Bully



  • Hallo

    string ist bereits ein Kette von Char, also kein zusätzliches Array

    std::string a;
    std::string b;
    

    und das std:: kannst du weglassen, wenn du

    using namespace std;
    

    oben bei deinen Includes hinschreibst.

    bis bald
    akari



  • Ich will ja jetzt das wenn mein name ausgegeben wir mit einer der 7 möglichkeiten davor danach dann die alters abfrage gemacht wird aber der macht dann nicht weiter... was soll ich machen?

    MFG Bully



  • Hallo

    also mir fällt auf, das du zurst das Alter einließt

    cin>>b;
    system("cls");
    

    und erst dann die Aufforderung ausgibst (die wie bereits gesagt nur mit einer Wahrscheinlichkeit von 1/7 erscheint)

    cout<<Alter[u];

    Du siehst also keine Aktion mehr, weil du zuerst eine Zahl eingeben mußt und dann keine Ausgabe darauf erscheint. Andererseits sollte aber nach Eingabe einer Zahl aber die Ausgabe

    cout<<b<<'\n';
    

    kommen.

    bis bald
    akari



  • Habe gerade noch ein bischen rum probiert und jetzt geht es danke an euch Beide aber bin mir sicher das wir uns noch öfter sehen werden bzw. das ich noch mehr fragen haben werde 🙂

    MFG Bully



  • Moin Jungs naja so schnell kanns gehen also ich habe ein neunes problem und zwar will ich eine i-net seite öffnen ein meinem programm wie mache ich das ??

    MFG Bully



  • CppWebBrowser oder so ähnlich!

    Mach 'n neuen Thread zum neuen Thema auf.


Anmelden zum Antworten