Zeilenumbruch in der IDE aber nicht in Konsole



  • Hello

    Ich möchte eine lange String Konstante definieren, und dabei im Code umbrechen, damit es übersichtlich bleibt. Dabei krieg ich aber so doofe Lücken zwischen den Zeilen.

    #include <string>
    
    const std::string line = "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    						  \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD";
    

    Alles auf eine Linie schreiben will ich nicht. Wie kann ich das anders lösen?
    Danke schoma



  • Ich denke du meinst einen Zeilenumbruch mit C++.
    Wer suchet der findet.



  • Nein, sorry.
    Ich mein wirklich nur im Code Editor, damit ich nicht horizontal scrollen muss, und es übersichtlicher ist.
    In nem String kann man doch nur mit "\" umbrechen oder?
    Sonst ist Whitespace ja kein Problem in C++.

    Ausgabe soll so sein

    ═══════════════════════════════════
    

    Einfach ne ganze Zeile ne Linie



  • Ich glaube er will eben KEINEN Zeilenumbruch oder?
    Das einzige was mir auffällt:
    const std::string line = "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD****
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD****
    ...

    Wieso diese \ am schluss jeder Zeile?



  • Sorry hat nicht geklappt
    ════════════════════════════════════════════



  • Machs dort wo die Linie ausgegeben werden soll, so:

    for(int i = 1; i <= 80; i++)
        cout << "\xCD";
    


  • Ja danke, das würde gehn. Wollt die Linie aber als Konstante speichern, weil ich sie öfter brauche.
    Man kann ja mitten in einem Stringliteral nicht einfach die Zeileumbrechen im Editor (Mach ich spätestens bei 80 Zeichen). Das macht man doch dann mit \ am Ende der Zeile.
    Oder?



  • Ja das stimmt.
    zur konstanze, du könntest meinen code in eine funktion schreiben:

    void line()
    {
        for(...)
            cout...
    }
    

    Ausgeben kannst das ganze dann mit line();



  • Ok ja, auch möglich.
    Frage ist, ob das Sinn macht, lieber ein wüstes Codelayout, als dauernd einen Funktionsaufruf, oder?

    Ich mag Tante Konstanze eben gern 🙂

    Aslo angenommen man hat einen längeren Text auszugeben, (Bsp Fehlermeldung) und hat den als Literal drin, wie bricht man den dann um? Also im Editor mein ich, die Konsole machts ja automatisch nach 80 Zeichen.



  • Ich würd halt einfach 'n Zeilenumbruch machen und den dann mit \b wieder rückgängig machen...



  • *selbsthau*
    *lol*

    So gehts:

    const std::string line = "\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\
    \xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD";
    

    Ein Typograph würd sich zwar übergeben, aber was solls..



  • Wo ist den da der Unterschied zum ersten?



  • Muffin888 schrieb:

    Wo ist den da der Unterschied zum ersten?

    Ich check absolut nicht, was er wollte. Und wenn ich mir das erste und letzte Post vom ihm ansehe, dann war das ein Troll.



  • er wollte einfach *eine* lange Code-Zeile über mehrere Zeilen im Editor verteilen, aber eben so, dass der Compiler von einer Zeile ausgeht. Allerdings hat bei dem string, den er definierte, der Compiler die Leerzeichen mit reingenommen, was unerwünscht war. Das Problem ist gelöst; der Unterscheid zwischen dem ersten und letzten post klärt das doch, oder? 😉


Anmelden zum Antworten