Einige Fragen zu notepad++



  • Rotkiv schrieb:

    Auch wenn ich vorhin total gepennt habe und mir deinen Quellcode zugegebener Maßen nicht angeschaut habe - weil das "Problem" bzgl der schließenden Console recht bekannt ist, so kannst du genau dies Vorhaben mit den unter meinem Link geposteten Mitteln lösen:
    fflush(stdin);
    getchar();

    Ouh tut mir Leid dann war der Link ja wirklich mehr als Hilfrei *schäm*
    ich muss mehr an meiner Auffassungsgabe arbeiten!
    Danke nochmal für die nette Hilfe ihr habt mir sehr geholfen.

    Gruß
    Slawa



  • Artchi schrieb:

    Die DOS Box schließt sich, weil dein Programm zu ende ist. Das ist völlig normal, richtig und wäre anders falsch. Warum? Wenn jedes Programm, das sich beendet, ein Fenster offen lässt, dann viel Spaß, wenn man sowas in einem Batch laufen lassen würde.

    Das MSVS hat da zwei Tasten:

    F5: Debugger startet, und das Fenster wird geschlossen, weil man davon ausgeht, das man beim Debuggen einen Breakpoint setzt (welcer das Programm pausiert).

    STRG+F5: Das Fenster wird NICHT geschlossen, sondern offen gelassen. Weil das Programm nicht durch einen Breakpoint pausiert werden kann.

    Also, starte deine Programme mit STRG+F5, wenn du die letzten Ausgaben sehen willst.

    Hay Super habe deine Variante erst n tick später gelesen 🙂
    Trozdem danke, ich werde mir beides merken 🙂

    Gruß
    Slawa



  • Noobkiller16 schrieb:

    Trozdem danke, ich werde mir beides merken 🙂

    Nicht nötig.
    Konsoleanwendungen sollen am Ende nicht pausieren.
    Und fflush(stdin); ist nicht ganz unumstritten, fürchte ich.



  • volkard schrieb:

    Und fflush(stdin); ist nicht ganz unumstritten, fürchte ich.

    wieso?
    Oder besser gesagt was ist genau der befehl von fflush(stdin)? Muss ja sicherlich einen ungewollten nebeneffekt haben wenn es so umstritten ist.
    (Bin in moment nicht dazu gekommen im Internet nachzuschauen weil ich die ganze Zeit am rumspielen bin mit open source müll suchen 😛 )



  • Dann warte ich mal ab, bis Du Zeit hast.



  • volkard schrieb:

    Dann warte ich mal ab, bis Du Zeit hast.

    Naja es ist 23:42 und ich habe Ferien
    Zeit habe ich also ohne ende 😉





  • nman schrieb:

    Google, "stdflush stdin". Erster Treffer: http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1052863818&id=1043284351

    danke, aber den Artikel habe ich schon gelesen. Nur leider nicht wirklich was verstanden, da mir das Fachchinesisch "Noch" nicht liegt.
    Habe logischerweise weitergesucht doch die Erörterung blieb stehts gleich.^^



  • Noobkiller16 schrieb:

    Muss ja sicherlich einen ungewollten nebeneffekt haben wenn es so umstritten ist.

    Kurzfassung: Nein, hat es nicht - aber es hat auch nicht den erwarteten/erhofften Effekt. Laut Standard funktioniert fflush() nur mit Ausgabe-FILE's (z.B. stdout oder eine per fopen(...,"w"); geöffnete Datei) und hat für diesen Anwendungszweck auch eine klar definierte Funktion. Was es mit Eingabe-FILE's (wie stdin) macht, wird nicht spezifiziert.
    (das hat MS so zweckentfremdet, daß es ein unter Umständen plausibles, aber nicht portables Ergebnis liefert)

    PS: C++ trennt hier klar zwischen ostream::flush() und istream::ignore().



  • ich habe mich an diese Arbeitsweise gewöhnt, falls das Programm nicht auf anderen Rechnern übertragen werden sollte: Das Programm im Anklickmenü als nicht schließend kennzeichnen, oder eben Konsoleprogramme gleich aus der Konsole heraus kompilieren und starten.

    compiler z.B.: http://bellard.org/tcc/



  • Alles klar dann weis ich bescheid.
    Ich habe hier noch ein kleines Problem.
    Ich wollte gestern noch ein code schreiben, welcher mir die ersten 10 quadratzahlen ausgibt.
    Das Programm startet zwar, aber es kommen immer verschiedene Zahlen und ich erreiche nicht den Effekt den ich eigentlich erzielen wollte.

    #include <stdafx.h>
    #include <stdio.h>
    int main (void)
    {
    	int x;
    		printf("Hier sind die ersten 10 quadratzahlen!\n");
    		printf("%d\n", &x);
    
    		for(x=1;x<10;x=x+1);
    
    		return 0;
    			}
    

    ich habe so ziemlich alles gemacht was ich machen musste.
    Ich habe x einen wert gegeben ( 1 ) dann habe ich gesagt das der wert der variable nicht größer als 10 werden darf, da x der multiplikator ist.
    Dann x+1 damit sich die Variable immer um eins erhöht und am ende den wert mit x initialisiert.



  • Du gibst ja auch die Adresse deiner VAriable aus, da kann nichts draus werden (bei printf() mußt du nicht die Adresse übergeben). Außerdem wäre es eine gute Idee, die Ausgabe IN die Schleife zu ziehen:

    for(i=1;i<=10;++i)
      printf("%d", i*i);
    


  • CStoll schrieb:

    Du gibst ja auch die Adresse deiner VAriable aus, da kann nichts draus werden (bei printf() mußt du nicht die Adresse übergeben). Außerdem wäre es eine gute Idee, die Ausgabe IN die Schleife zu ziehen:

    for(i=1;i<=10;++i)
      printf("%d", i*i);
    

    erstmal danke für deine Antwort.
    Jetzt läuft es definitiv stabiler und es kommt einen Konstante Zahl.
    Leider wird nur eine Zahl ausgegeben und zwar 121 und ich wollte die ersten 10 Quadratzahlen haben, also 1*1 Ergebnis 2*2 Ergebnis etc. Und am besten noch einen Abstand zwischen den jeweiligen Zahlen.

    Außerdem habe ich auch noch einen Frage zu VB 2010 Express.
    Immer wenn ich ein Projekt erstelle, dann einen lauffähigen Code schreibe diesen dann durch den Debugger starten lasse, kann ich diesen Code nicht mehr verändern.
    Bzw Veränderungen werden nicht wahrgenommen und der Code wird wie folgt einfach gestartet. Selbst wenn ich den ganze Code im Fenster lösche!
    Deswegen muss ich immer ein komplett neues Projekt erstellen was immer wieder dauert und blöd ist.
    Habt ihr vielleicht eine Möglichkeit einen Code sofort zu löschen ohne das ich dann ein neues Projekt erstellen muss ?



  • Keine Ahnung wie du CStoll's Quelltext noch ergänzt hast. Der ist Okay.

    Hier mal komplett:

    #include <stdio.h>
    
    int main (void)
    {
        printf("Hier sind die ersten 10 quadratzahlen!\n");
        for(int i=1;i<=10;++i)
            printf("%d\n", i*i);
    
        return 0;
    }
    

    Microsoft geht da einen anderen Weg. Deshalb ist es möglich das der Quelltext bei denen nicht so läuft.

    MfG f.-th.



  • Besorg Dir bitte mal ein Buch.
    Du hast ja wirklich überhaupt keine Ahnung und das Forum ist nicht dazu da Dir die Grundlagen zu erklären.



  • Noobkiller16 schrieb:

    CStoll schrieb:

    Du gibst ja auch die Adresse deiner VAriable aus, da kann nichts draus werden (bei printf() mußt du nicht die Adresse übergeben). Außerdem wäre es eine gute Idee, die Ausgabe IN die Schleife zu ziehen:

    for(i=1;i<=10;++i)
      printf("%d", i*i);
    

    erstmal danke für deine Antwort.
    Jetzt läuft es definitiv stabiler und es kommt einen Konstante Zahl.
    Leider wird nur eine Zahl ausgegeben und zwar 121 und ich wollte die ersten 10 Quadratzahlen haben, also 1*1 Ergebnis 2*2 Ergebnis etc. Und am besten noch einen Abstand zwischen den jeweiligen Zahlen.

    Lass mich raten - du hast hinter der for()-Schleife noch ein Semikolon gesetzt.



  • Jap war das Semikolon danke;)


Anmelden zum Antworten