Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19
  1. #11
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Code:
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	while(--argc)
    	{
    		printf("\n0x");
    		while(*argv[argc])
    			printf("%02x", (unsigned char)*argv[argc]++);
    	}
    	
    	return 0;
    }
    Also so code ich ^^

    Aber das nur am Rand...
    Du könntest das mithilfe von getch() machen, und nach jedem Input mit (ich glaube) gotoxy() den Textcursor neu setzen, den Buffer ausgeben und dann Minuten schreiben - wäre ne Alternative...

  2. #12
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    @GregorSamsa: Du hast eindeutig C und nicht C++ gelernt

    @Threadstarter: Da du C++ Anfänger bist, sei nicht frustriert, wenn du das letzten Posts nicht verstehst. Das kommt noch, da bin ich mir sicher


    Für dein Problem guck dir Sp1nnys Post an. Wenn du noch fragen hast, helfen wir dir gerne weiter.


    Edit: Da ich gerade zu viel Zeit habe und ich mir denken kann, dass du einen Teil von Sp1nnys Antwort vielleicht nicht verstehst, schreibe ich noch etwas dazu. Normalerweise hätte dir Sp1nny das natürlich selber weiter erklärt nur weiß ich zufällig, dass er keine Zeit mehr hat(te) .

    Code:
    if(!(cin >> iMinutes))
            exit(1);


    Du fragst dich vielleicht, was das soll. Erstmal solltest du wissen, falls du es nicht schon weißt, dass wenn man keine geschweiften Klammern "{ ", "}" nach if setzt, die nächste Zeile bei erfolgreicher Bedingung (true) ausgeführt wird.

    Code:
    if(Bedingung)
    Anweisung1;
    Anweisung2
    entspricht also:
    Code:
    if(Bedingung)
    {
            Anweisung1;
    }
    Anweisung2;

    Wie ich bereits geschrieben habe, wird bei erfolgreicher Ausführung von cin ein Wert ungleich 0 zurückgegeben. Mit "!" verneint er den Rückgabewert. Das heißt, wenn ein Fehler auftritt, ist die Rückgabe gleich 0. Durch die Verneinung "!" wird dies also zu 1 bzw. true. Somit wird "exit(1); " ausgeführt, welches das Programm beendet.

    Zusammengefasst dient dies also dazu um bei fehlerhaften Verhalten das Programm zu beenden.

    Das "cin.get();" am Ende sorgt dafür, dass sich das Programm nicht beendet, sondern man noch eine Taste drücken muss. Das weißt du vielleicht, aber wofür ist vorher dieses mysteriöse "cin.ignore();"?

    Antwort: Dies löscht den Eingabe-Puffer. Somit kann "cin.get()" in "Ruhe seine Arbeit machen".


    Mit freundlichen Grüßen
    DoS
    Geändert von DoS (01.04.2010 um 20:27 Uhr)
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  3. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    sp1nny (02.04.2010)

  4. #13
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Zitat Zitat von DoS Beitrag anzeigen
    [FONT=Arial]@GregorSamsa: Du hast eindeutig C und nicht C++ gelernt
    Ja... Damals... mit Büchern! (So Dinger aus Papier - kp, das Turbo C 2.01 Handbuch wurde warscheinlich noch mit Hand geschreiben... xD)

    Ich weiß nicht welchen Compiler du verwendest.
    Ich habe damals Turbo C gehabt - das war 1337 bis zum Ende!
    Ultra geil...

    Solltest du mal in C reingucken (ähnlich wie C++) versuch dir mal das Turbo C 2.01 Buch von Markt&Technik (ISBN: 3-89090-215-4) zu besorgen - für mich eine Bibel, das könnte dir vielleicht helfen.
    Dort gibt es eine große und gute Auflistung aller C-Befehle (die i.d.R. auch in C++ benutzbar sind...)

    greetz

  5. #14
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    Das war nur eine Bemerkung . Ich meinte das wegen dem "#include <stdio.h>" und printf. Als C++ler würde man ja "#include <cstdio> schreiben und cout oder so benutzen. Das war keine Kritik . Benutzen tuen die meisten C++ler C sowieso. Meistens unbewusst . Cstrings sind außerdem viel cooler und schneller als die Strings aus der STL, die jeder Trottel nutzen kann xD.

    Mal eine andere Frage: Wie alt bist du, wenn du das damals schon benutzt hast ?


    Na ja, das Buch kann man anscheinend nicht mehr neu kaufen .

    Mit freundlichen Grüßen

    DoS
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  6. #15
    Trojaner Avatar von Avior
    Registriert seit
    17.03.2010
    Beiträge
    59

    Standard

    Zitat Zitat von DoS Beitrag anzeigen
    Wie ich bereits geschrieben habe, wird bei erfolgreicher Ausführung von cin ein Wert ungleich 0 zurückgegeben. Mit "!" verneint er den Rückgabewert. Das heißt, wenn ein Fehler auftritt, ist die Rückgabe gleich 0. Durch die Verneinung "!" wird dies also zu 1 bzw. true. Somit wird "exit(1); " ausgeführt, welches das Programm beendet.

    Zusammengefasst dient dies also dazu um bei fehlerhaften Verhalten das Programm zu beenden.

    Das "cin.get();" am Ende sorgt dafür, dass sich das Programm nicht beendet, sondern man noch eine Taste drücken muss. Das weißt du vielleicht, aber wofür ist vorher dieses mysteriöse "cin.ignore();"?

    Antwort: Dies löscht den Eingabe-Puffer. Somit kann "cin.get()" in "Ruhe seine Arbeit machen".
    was sind denn fehler?
    falsche eingaben a la buchstaben ?

    cin.ignore() löscht praktich den ersten cin damit der nicht automatisch das cin.get() auslöst oder?

    btw: was ich schon seit ewigkeiten herrauszufinden versuche, ist, wie man mit hilfe von c++ ein anderes programm öffnet oder schließt(komischer satz oO)
    kann mir da jemand helfen^^?

  7. #16
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    "was sind denn fehler?
    falsche eingaben a la buchstaben ?"


    Richtig. Denn Buchstaben können in unserem Fall nicht mit dem Datentyp "int" dargestellt bzw. gespeichert werden. Ein anderer Fehler wäre zum Beispiel wenn der Arbeitsspeicher voll ist.


    "cin.ignore() löscht praktich den ersten cin damit der nicht automatisch das cin.get() auslöst oder?"


    Sowie du das meinst, ist das korrekt. Ist nur etwas ungenau formuliert


    "btw: was ich schon seit ewigkeiten herrauszufinden versuche, ist, wie man mit hilfe von c++ ein anderes programm öffnet oder schließt"


    Google mal "openprocess". Aber das hier ist wieder ein neues "Problem" und kommt in einen anderen Thread


    Mit freundlichen Grüßen

    DoS
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  8. #17
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard

    Um einen neuen Prozess zu erstellen brauchst du die WinAPI Funktion "CreateProcess" - zu finden ist sie hier : http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx Ich bin sicher DoS hat diese Funktion gemeint, denn mit "OpenProcess" öffnet man lediglich bereits laufende Prozesse. Vlt. sollte man noch wissen, dass man Chars auch als Ints darstellen kann ( damit keine Verständnisprobleme auftreten ). In dem Falle wird der ASCII Wert des Buchstabens gespeichert. Hilfreich ist bei solchen Angelegenheiten eine ASCII-Table ( http://www.asciitable.com/ ). Das Problem tritt nur auf, da "cin" keine Typen castet. Nochmal zur verdeutlichung:
    Code:
    #include <iostream>
    using namespace std;
    
    int main(void){
    
        cout << "ASCII-Wert des Buchstabens 'a': " << (int)'a' << endl;
        cout << "Darstellung von 'a' mit Hilfe des ASCII-Wertes: " << (char)97 << endl;
    
        cout << "Schleife um die Buchstaben 'A' bis 'E' auszugeben: " << endl;
        
        for(int i = 65; i <= 69; i++)
        {
            cout << (char)i << endl;
        }
    
        cin.get();
        return 0;
    }
    Geändert von sp1nny (02.04.2010 um 16:41 Uhr)
    XMPP: sp1nny @ exploit.im
    MAIL: sp1nny @ tuta.io

    PGP:

    Wir müssen wissen — wir werden wissen.


  9. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    DoS (02.04.2010)

  10. #18
    Das Leben ist der Lehrer Avatar von DoS
    Registriert seit
    18.08.2008
    Beiträge
    528

    Standard

    Jo, Sp1nny hat natürlich Recht .

    Für weitere Fragen stehen wir dir gerne zur Verfügung.


    Mit freundlichen Grüßen

    DoS
    Legende: "Gruß" = kaum Zeit, "MfG." = durchschnittlich viel Zeit und "Mit freundlichen Grüßen" = viel Zeit
    gehabt beim Posten.


    Folgende Personen genießen meine Hochschätzung: BlackBerry, EBFE, DizzY_D, OpCodez, l0dsb und H4x0r007.

  11. #19
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    /closed wegen 18 Posts für einen Fehler, bzw. für Abweichen vom Thema.
    Sollten weitere Fragen bestehen, so stellt diese gesondert, sodass auch andere in einem halben Jahr mit dem selben Problem eine Chance haben das zu finden.

    Oder besprecht das über IM'ing weiter.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Seite 2 von 2 ErsteErste 12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •