steuerzeichen für zeilenumbruch HIIIIIIIIIILLLFEEEE!!!^^



  • hallo!

    ich brauche mal ganz dringend das steuerzeichen für zeilenumbruch in ansi..

    wollte ne verschlüsslung schreiben, das scheitert jetz daran, das wenn in der textdatei n zeilenumbruch ist, das prog undefiniertes verhalten macht...

    logisch, ich hab ja auch kein zeilenumbruch in meinem "zeichensatz"...

    bloß wie schreibt man den? \n isses nicht das hab ich scho probiert..



  • also zeilenumbruch ist glaub ich 0x10 x13 Also neuel zeile und zeilenvorschub



  • und wie is das einzugeben??

    ich hab so ein array für meinen "zeichensatz"

    char *zeichen [] = { "abcdefghijklmnopqrstuvwxyz ", "bcdefghijklmnopqrstuvwxyz a",
     "cdefghijklmnopqrstuvwxyz ab", "defghijklmnopqrstuvwxyz abc",
      "efghijklmnopqrstuvwxyz abcd", "fghijklmnopqrstuvwxyz abcde",
      "ghijklmnopqrstuvwxyz abcdef", "hijklmnopqrstuvwxyz abcdefg",
      "ijklmnopqrstuvwxyz abcdefgh", "jklmnopqrstuvwxyz abcedfhi",
      "klmnopqrstuvwxyz abcdefghij", "lmnopqrstuvwxyz abcdefghijk",
      "mnopqrstuvwxyz abcdefghijkl", "nopqrstuvwxyz abcdefghijklm",
      "opqrstuvwxyz abcdefghijklmn", "pqrstuvwxyz abcdefghijklmno",
      "pqrstuvwxyz abcdefghijklmno", "qrstuvwxyz abcdefghijklmnop",
      "qrstuvwxyz abcdefghijklmnop", "rstuvwxyz abcdefghijklmnopq",
      "stuvwxyz abcdefghijklmnopqr", "tuvwxyz abcdefghijklmnopqrs",
      "uvwxyz abcdefghijklmnopqrst", "vwxyz abcdefghijklmnopqrstu",
      "wxyz abcdefghijklmnopqrstuv", "xyz abcdefghijklmnopqrstuvw",
      "yz abcdefghijklmnopqrstuvwx", "z abcdefghijklmnopqrstuvwxy",
       0};
    


  • Da spielt wohl jemand mit der "erweiterten Cäsar-Verschlüsselung" rum? 😃



  • nö nennt sich glaub ich vigenere code 😛

    aufm quadrat von buchstaben verschieben 😉

    und wie kann ich das jetz da einfügen?



  • erstmal ist der Windows/DOS - Zeilenumbruch 2 Zeichen groß. Einfügen in einen Steing geht (ungeprüft) über

    "\x10\x13"
    


  • ill try 😃



  • ok

    compiler:
    17:61 [Warning] hex escape sequence out of range

    undefiniertes verhalten kkommt auch wieder 😛



  • darthdespotism schrieb:

    erstmal ist der Windows/DOS - Zeilenumbruch 2 Zeichen groß. Einfügen in einen Steing geht (ungeprüft) über

    "\x10\x13"
    

    Warum unbedingt Hex?? Und wenn schon hex, dann Hex...

    char carriage_return_and_line_feed[ ] = "\x0a\x0d";
    

    oder einfach:

    char carriage_return_and_line_feed[ ] = "\r\n";
    

    greetz, Swordfish



  • Swordfish schrieb:

    darthdespotism schrieb:

    erstmal ist der Windows/DOS - Zeilenumbruch 2 Zeichen groß. Einfügen in einen Steing geht (ungeprüft) über

    "\x10\x13"
    

    Warum unbedingt Hex?? Und wenn schon hex, dann Hex...

    char carriage_return_and_line_feed[ ] = "\x0a\x0d";
    

    oder einfach:

    char carriage_return_and_line_feed[ ] = "\r\n";
    

    greetz, Swordfish

    Hm ich kannte die Escape-Sequenzen nicht auswendig und oben stand 0x10 - 0x13
    Wenn das in wirklichkeit dezimale waren hast du natürlich recht 😉



  • ...

    und wie kann ich das jetz einfügen??????

    ich mach das ja char für char außer txt mit get()..

    so und jetz mach ich also ne if davor

    if ( real == rn) {
    				output<<rn;
    } else {
    //verfahren
    }
    

    rn sieht so aus:

    char rn [] = "\x0a\x0d";
    

    funktioniert nich, da compiler meint:

    56 J:\verschl_quadrat\verschl_qua2.cpp ISO C++ forbids comparison between pointer and integer

    so was jetz??



  • Informier' dich außerhalb deines Programms über Pointer und Strings in C. rn ist kein einzelnes Zeichen, sondern eine Zeichenkette. Äpfel und Birnen (lies: Zeichen und Zeichenketten) kannst du nicht ohne weiteres vergleichen. Erstens müssten es beides Zeichenketten sein, und zweitens würdest du mit

    char eins[ ] = "eins";
    char zwei[ ] = "zwei";
    
    if( eins == zwei ) {
    
        // sonstwas
    }
    

    die Anfangsadressen der Zeichenketten vergleichen und nicht deren Inhalt. Dafür gäb's strcmp, stricmp und Konsorten.

    Überließ doch einfach alle Zeichen, die nicht in deinem Alphabet vorkommen.

    greetz, Swordfish



  • Swordfish schrieb:

    char eins[ ] = "eins";
    char zwei[ ] = "zwei";
    
    if( eins == zwei ) {
    
        // sonstwas
    }
    

    Ich habe an der Stelle dann immer nach dem Motto

    char eins[] = "eins";
    char zwei[] = "zwei";
    
    if(std::string(eins) == zwei)
    

    gearbeitet 😉



  • mh, das hatte ich eh vor...

    mit dem zeichen überlesen..
    aber es wär ja lustig, wenn auf einmal mitten im verschlüsselten text sinnlose \r\n s auftauchen würden xD

    naja ok regel ich das so


Anmelden zum Antworten