Erstes C++ Programm



  • Ich habe wirklich geraten, aber es ging schnell :xmas1:

    Aber um dich nicht zu enttäuschen werde ich es jetzt zu verstehen versuchen.



  • Ich habe es - glaube ich.

    Fangen wir hier an:

    ::I[ "*F@lkA^!Zp?Z~\\023|HX^`$X(N+\011#\360" ] + ::I
    

    Das nte Zeichen wird immer n Zeichen vorverschoben. Also muss es für den Endtext n Zeichen zurückverschoben worden sein.

    ➡ "*GBooFd(byIeè èWhor7l=dB!<"

    Nimmt man dann die offensichtlich vom Algorithmus ignorierten Zeichen weg, so ergibt sich

    ➡ "*GBooFd(byIeè èWhor7l=dB!<"
    ➡ " G oo d by e Whor l d ! "
    ➡ "012345678901234567890123456

    Edit: Das war falsch eingerückt, muss nochmal nachdenken

    Das ganze läuft hier an:

    if(::_<i, i-1>::_I) // Prüfung
            {
                ++::I;
                ::i(i); // Ausgabe des Indexes
                --::I;
            }
    

    Soweit richtig?



  • Der Tannenbaum kompiliert nicht !

    SeppJ schrieb:

    #include<cstdio>

    //
    /**/
    template
    <int I,int I_>
    struct {enum{I=
    (I==1+1)||(I%I
    )&&
    <(
    I_>1/2+2?I:1/2),I_-1>::
    _I};};template<>struct _<1-
    1,1/3>{enum
    {I=0+1};};int
    I=1*0;void i(int I
    ){if(I>=1){if(::I<27){
    putchar(::I["F@lkA^!Zp?Z~\
    \023|HX^`$X(N+\011#\360"]+::I)
    ;}::I+=1+1;i
    (I-1);}}template<>
    struct _<-5/6,1>{enum
    {_I=1+1-1};};template<int
    i>struct {<i-1> I;enum{_I=_
    <i,i-1>::_I};void
    (){I.();if(_I){++::I
    ;::i(i);::I-=0+1+1-0
    1;}}}
    ;template<>struct <1>{enum {_I
    =0};void
    _(){};};
    int main
    (){
    <7>
    ;.
    ();
    }

    [C++ Fehler] Unit1.c(6): E2141 Fehler in der Deklarationssyntax
    [C++ Fehler] Unit1.c(10): E2141 Fehler in der Deklarationssyntax
    [C++ Fehler] Unit1.c(15): E2380 Nicht abgeschlossene String- oder Zeichen-Konstante
    [C++ Fehler] Unit1.c(15): E2290 Bei Subskription fehlt ]
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '\' (0x5c)
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '`' (0x60)
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '$' (0x24)
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '\' (0x5c)
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '#' (0x23)
    [C++ Fehler] Unit1.c(16): E2206 Ungültiges char-Zeichen '\' (0x5c)
    [C++ Fehler] Unit1.c(16): E2380 Nicht abgeschlossene String- oder Zeichen-Konstante
    [C++ Fehler] Unit1.c(18): E2141 Fehler in der Deklarationssyntax
    [C++ Fehler] Unit1.c(20): E2141 Fehler in der Deklarationssyntax
    [C++ Fehler] Unit1.c(25): E2141 Fehler in der Deklarationssyntax
    [C++ Fehler] Unit1.c(29): E2451 Undefiniertes Symbol '__'
    [C++ Fehler] Unit1.c(30): E2451 Undefiniertes Symbol '_'
    [C++ Warnung] Unit1.c(31): W8070 Funktion sollte einen Wert zurückgeben

    Aber er sieht 🕶 aus.

    Sowas müsste man mal in einem Projekt benutzen da freut sich doch der jenige der den Code eventuell mal "umschreiben" müsste. 😃


  • Mod

    Sone schrieb:

    Aber um dich nicht zu enttäuschen werde ich es jetzt zu verstehen versuchen.

    Ich denke, das ist unmöglich, das Verfahren ist viel zu obskur. Du hast das richtige Hackervorgehen gezeigt: Anstatt den unlesbaren Kopierschutz zu entschlüsseln, hast du einfach deinen eigenen Code an die Stelle gesetzt, der alles überspringt 👍 .

    Wenn es dich interessiert, wie es geht:
    Spoiler

    P.S.: Ich sehe, du hast es doch fast alleine gelöst 👍



  • Sehr schön 👍


  • Mod

    Der Holzfäller schrieb:

    Der Tannenbaum kompiliert nicht !

    Hast du den Code auch kopiert ohne die Formatierung zu ändern? Kritisch ist die Stelle

    putchar(::I["*F@lkA^!Zp?Z~\
    \023|HX^`$X(N+\011#\360"]+::I)
    

    Da hier das Zeilenfortsetzungszeichen '\' benutzt wird, darf da kein falsches Zeichen an den Anfang der nächsten Zeile. Diese muss unbedingt mit dem \023 beginnen!
    Du kannst natürlich auch

    #include<cstdio>
    
                  //
                 /**/
               template
            <int I,int I_>
           struct _{enum{_I=
         (I==1+1)||(I%I_)&&_<(
        I_>1/2+2?I:1/2),I_-1>::
      _I};};template<>struct _<1-
              1,1/3>{enum
            {_I=0+1};};int
          I=1*0;void i(int I
        ){if(I>=1){if(::I<27){
      putchar(::I["*F@lkA^!Zp?Z~\023|HX^`$X(N+\011#\360"]+::I)
            ;}::I+=1+1;i
          (I-1);}}template<>
         struct _<-5/6,1>{enum
       {_I=1+1-1};};template<int
    i>struct __{__<i-1> I;enum{_I=_
          <i,i-1>::_I};void
        _(){I._();if(_I){++::I
      ;::i(i);::I-=0+1+1-0*1;}}}
    ;template<>struct __<1>{enum {_I
              =0};void
              _(){};};
              int main
              (){__<7>
              _;_._();
    }
    

    benutzen, dann kannst du umformatieren wie du möchtest und es sollte überall funktionieren (ja, streng genommen ist der Bezeichner _ und _I reserviert, aber ich gehe mal davon aus, dass dieser in keiner Standardbibliothek benutzt wird)


Anmelden zum Antworten