Anfänger-Hänger bei Aufgabenstellung?!?



  • Hallo ich fange gerade mit C++ an und hänge im Moment an dieser Aufgabenstellung. Ich weiß nicht wie ich das Ganze aufbauen soll. Kann mich jmd. auf den richtigen Weg bringen 🙂

    Schreibe ein Programm, das einen Character einliest und den Integerwert des Zeichens und das Zeichen selbst ausgibt. Anschliessend soll das Programm einen Integerwert einlesen und diesen als Zeichen ausgeben.
    Was passiert, wenn zu dem eingegebenen int-Wert die Zahl 256 und ein anderes mal 263 addiert wird ?

    Bekomme ich das mit cin und cout hin, bzw. cin >> intVariable; cout << "INT: " << (int)charVariable <<

    Wäre cool wenn mir jmd. den Zeilenablauf mal zeigen würde!

    Danke für die Hilfe!!



  • Also ich wuerde es mal so probieren:

    int i;
    char c;
    cin>>c;
    cout<<(int)c<<endl;
    cin>>i;
    cout<<(char)(i%256); // falls i > 256
    

    aber ausprobiert hab ich es nicht



  • cin>>text;
    cout<<endl<<(int)text;
    

    Geht ohne Probleme, für die Konvertierung von int zu char wird es etwas schwieriger, da du prüfen mußt, ob es sich um eine gültige Zahl zwischen 0 und 255 handelt.

    Wenn du etwas auf den Wert drauf addierst, kommt es maximal zu einem überlauf
    -> 255+2=1, hat aber keine weiteren Auswirkungem.



  • also von int nach char funktioniert es noch nicht. Bekomme dort nur Zahlen ausgegeben und soll ja das Zeichen für die Zahl bekommen.
    Wie sieht das mit der "cast" funktion aus, würde das gehen und wenn ja, wie?

    Danke!



  • Na ganz einfach:

    int i=65;
    cout<<(char)i<<endl  //A wird ausgegeben
    


  • Ich bekomme immer noch kein Zeichen raus wenn ich eine Zahl eingebe.

    Hier mal mein "code":

    int i;
    char c;

    cout << ("Bitte Zeichen eingeben: ") ;
    cin >> c;
    cout << (int) c <<endl;
    cout << ("=========================") <<endl;
    cout << ("Bitte Zahl eingeben: ");
    cin >> i;
    cout << (char) i <<endl; //A wird ausgegeben

    return 0;

    Hoffe ihr könnt mir da weiterhelfen.

    Nachdem das Zeichen eingegeben wurde, soll ich ja noch eine Zahl eingeben, aber das Programm wird wenn ich eine zweite Zahl eingebe beendet. Was muss ich noch alles hinzufügen?

    DANKE!!!



  • Ein

    getchar()
    

    damit die Konsole nicht sofort geschlossen wird und du die Ausgabe sehen kannst.

    Gruss Entyl Sa



  • Entyl_Sa schrieb:

    Ein

    getchar()
    

    damit die Konsole nicht sofort geschlossen wird und du die Ausgabe sehen kannst.

    Gruss Entyl Sa

    oder wenn man schonmal streams benutzt, dann kann man auch gleich

    cin.ignore();
    

    nehmen



  • kommt dieses "getchar()" unten hin eine Zeile vor return und steht alleine?

    Falls ja passiert genau das gleiche, wie oben beschrieben 😕

    wäre super wenn mir mal jmd. den ganzen code schreiben könnte, oder den oben ergänzen würde.



  • cout << ("Bitte Zahl eingeben: ");
    cin >> i;
    cout << (char) i <<endl; //A wird ausgegeben
    
    cin.clear(); //falls es beim einlesen einen fehler gab, fehlerflags löschen
    cin.ignore(cin.rdbuf()->inavail()); //lösche alle zeichen aus dem eingabebuffer
    cin.get(); //und warte, bis jemand enter drückt
    
    return 0;
    

    so 🙂

    oder das programm gleich von einer konsole aus starten 😉


Anmelden zum Antworten