Beiträge von sauzachn

    Ah, das hab ich ganz übersehen/verpeilt...

    Jetzt bekomm ich aber egal was ich eingebe
    -1851192085.......00000000 -18511920....00000000i raus.


    Also bei mir hat es gepasst, nachdem ich die & bei den printf weggetan habe UND %lf anstatt nur %f genommen habe. Mit %f liest du floats ein, mit %lf doubles ("long floats").

    ganz simple .. weil du dein ergebnis der operation in einer lokalen variable speicherst, anstatt im objekt selbst.


    Dem Einwand kann ich nicht ganz folgen?!

    xxyy: Beim printf darfst du keine & nehmen - sind ja keine Zeiger, die du ausgeben möchtest, sondern die Inhalte der Variablen... nur beim scanf brauchst du die Zeiger, wegen call-by-reference.

    int x=0,y;
    y=x++;
    Lange geschrieben: y=x;x+=1;

    Daher: x=1,y=0

    Jetzt:
    int x=1,y=0;
    x=--y;
    Lange geschrieben:x=y-1;y-=1;

    Also: x=-1,y=-1;

    "und erst bei neuem Durchlauf der neue Wert genommen" --> Es hat nix mit Durchläufen (z.b. bei Schleifen zu tun). Es geht hier rein um Auswertung von Ausdrücken, nicht um andere Effekte.

    1. Ja, du hast natürlich recht: Oktalzahlen setzen sich nur aus 0 .. 7 zusammen. Sorry, zu schnell geschrieben!

    2. Das gute an 0 ist aber, dass 0(dec) = 0(hex) = 0(oct) = 0(bin) :D

    3. Das andere gibt die Einrückung/Alignment ein, ja.

    Ich tippe trotzdem drauf, dass der header Befehl irgendwie nicht akzeptiert wird. Du kannst ja auch mal per telnet auf den Port 80 verbinden und die Seite anfordern. Was bekommst du dann zurück?

    Sorry, auch in aller Eile müssen die folgenden 2-3 Minuten drin sein:
    1. Ordentliches Subject
    2. Gültiger C++ Code (EDIT: In deinem inzwischen geposteten Beitrag ist es besser, aber auch nicht wirklich: ; fehlen, } und ) vertauscht etc.).
    3. Was funktioniert nicht/Fehlermeldungen/Erklärung, wo du hängst

    Was für dich nur 2-3 Minuten sind, sind für die, die dir helfen wollen, sicher mehr Minuten, bis man deinen Sauhaufen entwirrt und interpretiert hat. Ohne Garantie, dass man dir damit wirklich hilft, weil die Wahrscheinlichkeit hoch ist, dass man das Problem falsch verstanden hat.

    Also: Wo ist dein konkretes Problem? Die Implementierung der remove Funktion?

    Da hab ma schon mal ein Problem: Wie bekommt ein Aufrufer mit, wie das geänderte Array aussieht? Entweder du übergibst einen char* oder du lieferst auch ein char[] zurück.

    Grundlegende Idee: Du gehst das Array durch und vergleichst jeden Buchstaben mit deinem zweiten Parameter. Wenn sie nicht gleich sind, hat sich die Sache für diesen Schleifendurchlauf erledigt. Wenn sie gleich sind, hast du mehrere Möglichkeiten, je nach Wunsch der Angabe:

    a. Element nur rauslöschen, hinterlässt Lücken bei der Ausgabe (EDIT: oder die Ausgabefunktion gibt das Array Zeichen für Zeichen aus und überspringt Leerzeichen einfach).
    b. Element rauslöschen und gleich alle folgenden Elemente um eine Position nach links verschieben
    c. Element rauslöschen, nächste Iteration usw. und erst am Ende die Lücken korrigieren.

    1. Das \0 Character ist ein besonderes Zeichen (wie alle Zeichen in einem char oder string, die mit \ eingeleitet werden), das üblicherweise dazu benutzt wird, einen String o.ä. als beendet zu erklären. Es hat den ASCII-Wert 0.

    2. ( ist 50(oktal). Mit \xyz (wo x, y, z elem 0..9) wird eine Oktalzahl angegeben.

    3. a ist ein int mit dem Wert 100. ASCII-Wert 100 ist ein 'd'.

    4. '\xa': \x ist für Hex-Zahlen. a ist (im Detail abhängig vom OS), als ob du Return drückst.

    5. %f Floatingpoint, %e Exponentialdarstellung.

    Das sind alles Dinge, die in jedem C-Anfänger-Buch stehen!

    1. Dein Programm ist nicht portabel und nicht sprachunabhängig: Nicht alle Zeichensätze haben einen Abstand von 32 zw. Groß- und Kleinbuchstaben. Nicht alle Buchstaben sind in diesem Schema (z.b. öäüß).
    2. Es gibt die C-Funktion int toupper(int char), die portabel und sprachunabhängig ist.
    3. Was ist flushall()? Jedenfalls keine Standard-C-Funktion.
    4. Ein einzelnes Zeichen liest du bequemer und ohne alle scanf-Nachteile mit getchar() ein.

    also das prinzip scheint klar. aber wie mache ich das in der main methode mit
    int** detector = new int*;
    falls detector eine map < unsigned short, pair < unsigned short, bool > >
    ist?
    map<...>** detector = new map<...>*
    ?


    Nein, so direkt geht das nicht. Ein ** ist ein Zeiger auf einen Zeiger. Du musst zuerst eine normale Zeigervariable anlegen und dann erst einen Zeiger auf diese Variable machen. In Langform:

    Code
    map<blabla>* m = new map<blabla>(...);
    map<blabla>** mm = &m;


    Früher (und mit manchen Compilern wohl heute noch) ging auch:

    Code
    map<blabla>** m = &(new map<blabla>(...));


    Das ist aber kein gültiges C++ (wurde im GCC AFAIR erst eher spät als Fehler ausgegeben).

    Also merke: Jede Aktion die unser Jörgerl in Kärnten macht (bezügl Ortstafel verrücken und so) ist (leider) vollkommen legitim, und keiner kann ihm was anhaben weil der Typ die gesamte Verfassung auswendig kann. :(


    Naja, so einfach ist das auch wieder nicht. Er kann das alles nur machen, weil in der Verfassung darauf gebaut wird, dass ein Staatsorgan, das darauf vereidigt ist, Erkenntnisse des VfGH umsetzt. Für den Fall, dass sich ein LH einfach nicht an Urteile hält, ist die Verfassung leider nicht sehr exakt ausgearbeitet. Es gäbe nur die Möglichkeit, dass der VfGH den Bundespräsidenten mit der Exekution des Urteils beauftragt. Das hieße: Bundespräsident beauftragt Tafel-Unternehmen mit der Anfertigung und lässt das Bundesheer aufstellen. Dann gibts aber in Kärnten einen Bürgerkrieg.

    btw: Fast alle älteren Politiker haben den Dr.jur. - den bekam man damals noch für 4 Jahre normales Jus-Studium ohne Abschlussprüfung. Schon eine coole Sache - unser DI ist so gesehen von den Stunden her mehr als ein Dr. der alten Schule. Einige haben aber daneben noch Studien wie Politikwissenschaften betrieben und damit eine Doktorarbeit schreiben müssen.

    Die Nationalbibliothek hat ein Exemplar jeder in Österreich verfassten Doktorarbeit: http://www.onb.ac.at/

    Haider hat sich übrigens das Büro am Institut für Verfassungsrecht mit Peter Kostelka (SPÖ) geteilt. Auch eine nette Geschichte, wie ich finde :)

    Das find ich mittlerweile schon ziemlich ausgelutscht... fast überall heißen die Server "Zeus", "Hera", "Apollo" oder "Odin", "Freya", "Thor" etc.


    Letztere Namen verwenden wohl hauptsächlich Burschenschafter ;)

    Ich mag diese klassischen Namen auch nicht mehr - ich hasse sie geradezu als konservativ-spießbürgerlichen Bullshit.

    Ich habe meinen Servern/sonstigen Rechnern früher immer Simpsons- oder Al-Bundy-Namen gegeben. Und tatsächlich, "moe" und "miranda" haben es überlebt. "al" ist immerhin ein Notebook. Mein Server heißt "scratchy", mein Notebook "itchy". "bart" und "lisa" sind zwei Numerikrechner. Usw.

    In eine Datei schreiben kann man mit der ">" Ausgabe-Umleitung. Soll ein normaler Text rein, müsste das mit echo gehen (meine DOS-Zeit ist schon sehr lange her):

    Code
    echo "blabla" > c:\temp\file

    Die anderen beiden Dinge wirst du mit reinem Batch nur schwer schaffen. Es gibt aber die div. Unix-Tools auch für Windows (sollte im Paket MS Windows Service for Unix (SFU) sein). Mit sed, awk, grep etc. ist es ein Leichtes, alle üblichen Batch-Probleme zu lösen.

    Ersten zwei Zeichen einer Variable:

    Code
    echo $VAR | head -c 2

    Überprüfen auf reinen Zahlenstring (es gibt natürlich mehrere Möglichkeiten):

    Code
    echo $VAR | grep '^[[:digit:]]*$' && echo "Ist eine Zahl!"

    Kannst du bitte folgende 2 Dinge tun:

    1. Dein Code ist nicht C++. Mach ihn dazu.
    2. Ich verstehe deine Frage nicht ganz. Du willst, dass sich die Variable in beiden Klassen B und C updated, wenn du sie in einer der beiden änderst? Dazu brauchst du irgendeine Art von Verbindung zwischen den beiden Klassen. Mangels echtem Code kann man dir aber so nicht weiterhelfen.