allgemeine Fragen



  • Hi,

    wollte jetz mal anfangen, mit c++ etwas zu programmieren.
    (habe vorher nur mit Java gearbeitet)

    Dazu vorab allgemein ein paar fragen:
    (Ich habe nur den "freeware" C++ compiler von Microsoft,
    also ohne Entwicklungsumgebung etc...)

    - Gibt es fuer C++ auch so etwas wie eine Java-API, in der man die ganzen
    Befehle nachschlagen kann? (Ich hab kein Bock immer all meine Unterlagen zu durchforschen, bis ich ein Beispiel finde, welches einen Befehl benutzt, den ich gerade brauche)

    - Gibt es etwas ähnliches wie einen String-Tokenizer bei Java???
    (Ich möchte bei einer eingabe mehrere Zahlen getrennt von einem Leerzeichen eingeben, und hinterher natuerlich getrennt verarbeiten.)

    - Char 2 Integer???
    (Da ich Kryptographie studiere, wollte ich zuerst mal testen, eine einfach verschlüsselung zu programmieren, und sei es nur durch einfaches XOR!
    So kann ich hinterher darauf aufbauen und weitergucken .p
    Deswegen auch die Frage, oder kann man bei chars auch bitmanipulationen betreiben??? )

    Danke schon mal im Vorraus .p
    cu...



  • Also Online-Dokumentationen zu C++ gibts mehrere. Da braucht man nur mal ne Suchmaschine anschmeissen. Da du aber eh mit einem MS-Compiler arbeitest, empfehle ich dir die MSDN ( msdn.microsoft.com ).

    So eine Art String Tokenizer wie in Java gibts in C++ nicht, meines Wissens. Im Endeffekt ist das Einlesen in C++ sehr simpel:

    ...
    int zahl;
    
    cin >> zahl;
    ...
    

    Dies bewirkt, dass von der Standardeingabe (im Normalfall die Tastatur) eine Zahl eingelesen wird und diese in der Integervariablen zahl gespeichert wird.

    Was genau meinst du mit Char 2 Integer?

    Bei char in C++ kann man auch Bitmanipulation betreiben:

    ...
    char zahl = 1;
    
    //jetzt machen wir eine 4 daraus mit Bitmanipulation
    zahl = zahl << 2;
    
    //und nun eine 2
    zahl = zahl >> 1;
    
    //jetzt eine 7
    zahl |= 5;
    
    //Und zu guter letzt wieder eine 1
    zahl &= 1;
    ...
    


  • Mit Char 2 Int meinte ich folgendes,
    ich will aus einer Datei auslesen, und die Zeichen ändern.
    Ich verstehe nur nicht, wenn ich das zeichen F habe, wie es
    im dualsystem gespeichert wird (bitmässig)

    Ich will zum beipspiel das 7 bit kippen, kann ich dann einfach
    Char ^ 64 rechen.
    (Char XOR 64) 64 = 2^6 => 7 bit gekippt

    gut das kann ich ebend noch kurz testen .p
    aber falls es nicht geht, wie geht es dann?

    Du hast doch bei deiner bitmanipulation einfach nur das bit verchoben, erst um 2 stellen nach links, dann wieder eine nach rechts.

    //jetzt eine 7
    zahl |= 5;

    was bedeutet dies?? einfach nochmal 5 (integer-wert) addieren oder XOR 5 ???

    //Und zu guter letzt wieder eine 1
    zahl &= 1;
    ...

    Was bedeutet dies??? .p

    Und zu guter letzt wieder eine Frage .p

    int main()
    	{ 
    	  int n;
    	  double wert;
    	  cout << "LGS-Solv0r V1.0.a\n";
    	  cout << "(c) 2004 by nArF!\n";
    	  cout << "Anzahl der Zeilen und Spalten ? ";
    	  cin  << n;
    
    	  //Variabeln in Abhängigkeit von n initialisieren...
    	  double Matrix[n][n];
    	  double Ergebnis[n][n];
    	  double EinzelErg[n];
    etc....
    

    hier sagt er mir schon Fehler in in den letzten drei Zeilen????
    warum??? 😃
    Wie kan ich leere Arrays in Abhängigkeit einer Variablen erzeugen???

    Und stimmt, die msdn library muss ich mir mal besorgen....Oo...thx .p

    cu und thx for your time .p



  • int main()
    	{ 
    	  char Zeichen;
    	  cout << "Zeichen ? ";
    	  cin  >> Zeichen;
    	  char manipuliertesZeichen = Zeichen^64;
    	  cout << Zeichen << " manipuliertes Zeichen: "  << manipuliertesZeichen;
    	  return 0;
    	}
    

    Funzt schomma 😃

    Nur weiss ich echt nicht, ob er jetz echt das siebte bit einfach gekippt hat .p
    Bei Java konnte ich mir den Integer wert (ASCII) eines Zeichen anzeigen lassen, ebend indem ich einfach einen String in einen Integer geparsed habe und dann ausgegeben habe, dass wollte ich mit c++ auch machen, ebend um es zu überprüfen)
    Und wie kann ich prüfen, ob einzelne Bits gesetzt sind ???
    z.B. nehme ich mal an, dass Zeichen (ASCII = 256) mit 8 bits gespeichert werden, und ich will wissen, ob das bit 5 eine 1 oder 0 ist, wie mache ich das?? 😃
    THX

    P.S.: obige fragen immernoch aktuell .p
    und dass...

    cout << "LGS-Solv0r V1.0.a\n";
    cout << "(c) 2004 by nArF!\n";

    dient lediglich der erlehrnung des ausgabebefehls fuer die konsole und in keiner form hat dies mit irgendeiner art selbstverherrlichung zu tun .p

    cu ...



  • 1. Du kannst kein Array auf dem Stack erzeugen mit einer Variablen (keiner Konstanten) als Größenangabe...

    2. Bitmanipulationen kannst du ganz einfach betreiben: mit dem &-Operator kannst du mithilfe einer Maske prüfen, ob ein beliebiges Bit gesetzt ist (char besteht ja nur aus 8)...



  • | = oder
    & = und

    || = logisches oder
    && = logisches und

    Was meinst du genau mit 7. Bit kippen? Willst du ab dem 7. Bit nur noch 0en??

    Wenn du wissen willst, ob ein bestimmtes bit gesetzt ist, brauchst du nur den &-Operator mit der gewünschten Stelle anwenden, z. B.:

    //5. bit prüfen
    if(bytewert & 5)
    {
       //5. bit gesetzt (= 1)
    }
    else
    {
       //5. bit nicht gesetzt (= 0)
    }
    

Anmelden zum Antworten