Problem mit Programm



  • Jenny86 schrieb:

    Jetzt hab ich schon wieder ein neues Problem. Und zwar wollte ich einen Text ausgeben und da kommt mein Name drin vor und ich würd meinen Namen gern in Pink schreiben. Geht sowas?

    Nicht mit ANSI C++, nach deinen Fragen zu urteilen solltest du eh eher in das "DOS und Win32-Konsole"-Unterforum wechseln.

    Davon abgesehen:
    a) Bitte zumindestens kurz prüfen ob deine Frage schon gestellt wurde (Farben waren erst vor kurzen ein Thema). Hierzu ist auch die FAQ (in deinen Fall wohl vor allem die FAQ vom "C++" und vom "DOS und Win32-Konsole" Forum passend, die man auch über einen Link oben rechts leicht finden wird).
    b) Prüfen ob deine Frage wirklich in das jeweilige Forum passt
    c) 1 Thread pro Frage
    d) Sinnvollen Titel für den Thread wählen

    cu André



  • Damit dein Code lesbar bleibt, würde ich folgenden Code nehmen. Ich weiß zwar net obs die beste, oder ganz gar eine gute Lösung ist, doch so würde ich sie verwenden, aber ich bleib bei dem alten ae, oe...

    #include <iostream>
    
    std::string umlaut(char umlaut)
    {
        switch(umlaut)
        {
            case 'ä':
                return "\x84";
            case 'Ä':
                return "\x8e";
            case 'ö':
                return "\x94";
            case 'Ö':
                return "\x99";
            case 'ü':
                return "\x81";
            case 'Ü':
                return "\x9a";
            case 'ß':
                return "\xe1";
        }
    }
    
    int main()
    {
        std::cout << "Hei" << umlaut('ß') << std::endl;
        std::cout << "Fl" << umlaut('ü') << "sse";
    
        return 0;
    }
    


  • zwutz schrieb:

    Grob so:

    int main()
    {
       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0); // statt der 0 einfach eine Zahl zw. 0 und 15 für die Farbe angeben
    
       std::cout << "Dein Name" << std::endl;
    }
    

    Danke. Hat funktioniert.

    Wie brech ich jetzt eigentlich den Text um? Das Fenster ist 80 Zeichen breit und wenn der Text länger ist, bricht er ihn einfach ganz am Ende um und zerschnippelt so die Wörter. Wie kann ich manuell einen Zeilenumbruch reinmachen?



  • FreakY<3Cpp schrieb:

    Damit dein Code lesbar bleibt, würde ich folgenden Code nehmen. Ich weiß zwar net obs die beste, oder ganz gar eine gute Lösung ist, doch so würde ich sie verwenden, aber ich bleib bei dem alten ae, oe...

    #include <iostream>
    
    std::string umlaut(char umlaut)
    {
        switch(umlaut)
        {
            case 'ä':
                return "\x84";
            case 'Ä':
                return "\x8e";
            case 'ö':
                return "\x94";
            case 'Ö':
                return "\x99";
            case 'ü':
                return "\x81";
            case 'Ü':
                return "\x9a";
            case 'ß':
                return "\xe1";
        }
    }
    
    int main()
    {
        std::cout << "Hei" << umlaut('ß') << std::endl;
        std::cout << "Fl" << umlaut('ü') << "sse";
    
        return 0;
    }
    

    Unter Windows kannst Du einfach die API-Funktion CharToOem verwenden.



  • Jenny86 schrieb:

    Wie brech ich jetzt eigentlich den Text um? Das Fenster ist 80 Zeichen breit und wenn der Text länger ist, bricht er ihn einfach ganz am Ende um und zerschnippelt so die Wörter. Wie kann ich manuell einen Zeilenumbruch reinmachen?

    Die Frage gabs auch kürzlich. Du müsstest manuell die Zeichenlänge beachten und schauen, dass immer ganze Wörter umgebrochen werden.

    Such doch mal nach dem Thread...



  • Nexus schrieb:

    Jenny86 schrieb:

    Wie brech ich jetzt eigentlich den Text um? Das Fenster ist 80 Zeichen breit und wenn der Text länger ist, bricht er ihn einfach ganz am Ende um und zerschnippelt so die Wörter. Wie kann ich manuell einen Zeilenumbruch reinmachen?

    Die Frage gabs auch kürzlich. Du müsstest manuell die Zeichenlänge beachten und schauen, dass immer ganze Wörter umgebrochen werden.

    Such doch mal nach dem Thread...

    Das mit der Zeilenlänge krieg ich schon hin. Ich muss nur ganz generell wissen, wie man einen Umbruch macht.



  • Mit der Escapesequenz '\n' oder mit std::endl (für einen Stream).

    Das Zeichenkettenliteral "Hallo\nWelt! Ein Test\nLetzte Zeile" würde so dargestellt:

    Hallo
    Welt! Ein Test
    Letzte Zeile
    


  • Nexus schrieb:

    Mit der Escapesequenz '\n' oder mit std::endl (für einen Stream).

    Das Zeichenkettenliteral "Hallo\nWelt! Ein Test\nLetzte Zeile" würde so dargestellt:

    Hallo
    Welt! Ein Test
    Letzte Zeile
    

    Danke sehr. Funktioniert. 🙂 👍

    Was mach ich eigentlich, wenn ich zwei Zahlen dividieren will?

    cout << 10 : 2;
    

    funktioniert nicht.


  • Administrator

    Jenny86 schrieb:

    Was mach ich eigentlich, wenn ich zwei Zahlen dividieren will?

    cout << 10 : 2;
    

    funktioniert nicht.

    Vielleicht solltest du mal ein C++ Tutorial oder C++ Buch kaufen. Das sind absolute Grundlagen!

    Tutorial: http://tutorial.schornboeck.net/
    Bücher: C++ Primer oder Thinking in C++ 1&2

    Ich bin jetzt aber noch so nett und gebe dir einen Tipp:

    10 / 2
    

    Grüssli



  • Du solltest vielleicht mal ein Buch zu C++ anschauen, da werden solche Grundlagen geklärt.

    Der Divisionsoperator ist /. Abgesehen davon: Gewöhn dir bitte gleich an, zu sagen, was nicht geht - das ist dann in späteren Beiträgen hilfreich und bewahrt dich vor einer Diskussion, die am eigentlichen Thema vorbeigeht.


Anmelden zum Antworten