Einige Fragen zu notepad++



  • Super!
    Dann bedanke ich mich erstmal für die gute und schnelle Hilfe 😉 ich werde mich dann mal bei code blocks ein bisschen umschauen 🙂

    Gruß
    Slawa



  • Hab mir gerade visual 2010 Express und es gleich ausprobiert.
    Leider muss ich festellen das ich auch hier probleme mit dem Starten eines Programms habe.
    BZW ich weis nicht wie ich es über die DOS box öffne.

    Der code ist

    /* hello */ 
    
    #include <stdio.h>
    
    int main ( void )
    {
    	int x;
    	int y;
    
    	printf("Bitte geben sie eine Zahl für x ein!\n",x);
    		scanf( %d, &x );
    	printf("Bitte geben sie eine Zahl für y ein!\n",y);
    		scanf( %d ,&y );
    }
    {
    	while (x!=y);
    		if(x>y);
    			printf(" Jo X ist größer du sack\n");
    		else
    			printf(" Jo Y ist größer du sack\n");
    
    		}
    
    {
    	return 0;
    }
    

    und scheint in mom ganz richtig zu sein da kein fehlercode angegeben wird.
    doch leider kommt, wenn ich das debugging starte die Dosbox ganz schnell und ist sofort wieder weg bevor ich überhaupt was erkennen kann.

    Kleine stap bei stap instruktion wäre schon nice für w7

    ( ich kann ja mal sagen wie ich es versucht habe . also ich habe die Datei auf desktop gespeichert. also öffne ich die dos box und gebe DIR ein, dann stehen mir viele sachen zur auswahl daraufhin wähle ich "Desktop" durch den befehl "cd Desktop" dann wieder dir und dann den dazugehörigen ordner. Und danach die datei ebenfalls mit "cd" aber dann kommt immer , " Das System kan den angegeben Pfad nicht finden."
    bitte um hilfe 😃



  • Link, nächstes mal selber suchen...



  • Rotkiv schrieb:

    Link, nächstes mal selber suchen...

    Danke, hat aber leider nicht wirklich viel geholfen.
    Aber gut ich werden dann heute die Nacht nutzen google auszubeuten 🙂



  • /* hello */
    
    #include <stdio.h>
    
    int main ( void )
    {
        int x;
        int y;
    
        printf("Bitte geben sie eine Zahl für x ein!\n",x);
            scanf( %d, &x );
        printf("Bitte geben sie eine Zahl für y ein!\n",y);
            scanf( %d ,&y );
    }  // warum hier Klammer zu? soll hier main enden?
    {  // diese Klammer soll was bewirken?
        while (x!=y);  // was möchtest du mit dieser Zeile erreichen?
            if(x>y);   // in dieser Zeile ist ein Zeichen zu viel?
                printf(" Jo X ist größer du sack\n");
            else
                printf(" Jo Y ist größer du sack\n");
    
            }  // ?
    
    {  // was soll die Klammer hier?
        return 0;
    }
    

    Ich hoffe mal das ich noch wach genug für die Kommentare war 🙄

    MfG f.-th.



  • f.-th. schrieb:

    /* hello */
    
    #include <stdio.h>
    
    int main ( void )
    {
        int x;
        int y;
       
        printf("Bitte geben sie eine Zahl für x ein!\n",x);
            scanf( %d, &x );
        printf("Bitte geben sie eine Zahl für y ein!\n",y);
            scanf( %d ,&y );
    }  // warum hier Klammer zu? soll hier main enden?
    {  // diese Klammer soll was bewirken?
        while (x!=y);  // was möchtest du mit dieser Zeile erreichen?
            if(x>y);   // in dieser Zeile ist ein Zeichen zu viel?
                printf(" Jo X ist größer du sack\n");
            else
                printf(" Jo Y ist größer du sack\n");
       
            }  // ?
    
    {  // was soll die Klammer hier?
        return 0;
    }
    

    Ich hoffe mal das ich noch wach genug für die Kommentare war 🙄

    MfG f.-th.

    Die Kommentare waren mal nice danke 🙂 wie schon gesagt mache ich das seit kurzem und nach einer 9 Wöchigen Sommerferien pause und ohne iwas zu lernen etc fällt ein bisschen weg 😃 das war noch der rest der mir noch im hinterkopf hing und wollte das sofort testen 😃

    /* hello */ 
    
    #include <stdio.h>
    
    int main ( void )
    {
    	int x;
    	int y;
    
    	printf("Bitte geben sie eine Zahl für x ein!\n",x);
    		scanf(" %d", &x );
    	printf("Bitte geben sie eine Zahl für y ein!\n",y);
    		scanf(" %d" ,&y );
    
    	while (x!=y)
    		if(x>y);
    			printf(" Jo X ist größer du sack\n");
    		else
    			printf(" Jo Y ist größer du sack\n");
    }	
    
    {
    
    	return 0;
    }
    

    so richtig? Meines wissens dachte ich das die Return funktion in einem eigenem BLock stehen muss.

    PS: mein Problem ist immernoch bestehend das dass Programm immer sofort nach dem start geschlossen wird.

    Gruß
    Slawa



  • Nein, du hast nicht alle Kommentare von f.-th. beachtet, folgendes stimmt noch nicht:

    /* hello */
    
    #include <stdio.h>
    
    int main ( void )
    {
        int x;
        int y;
    
        printf("Bitte geben sie eine Zahl für x ein!\n",x);	// Das x hier ist überflüssig
            scanf(" %d", &x );
        printf("Bitte geben sie eine Zahl für y ein!\n",y);	// Das y hier ist überflüssig
            scanf(" %d" ,&y );
    
        while (x!=y)	// Wozu soll der Schleifenkopf hier gut sein?
            if(x>y);	// Das Semikolon hier ist zwar syntaktisch in Ordnung, aber sicher nicht gewollt
                printf(" Jo X ist größer du sack\n");
            else
                printf(" Jo Y ist größer du sack\n");
    }   
    
    {	// Das return muss im Block der Funktion stehen, zu der es gehört
    
        return 0;
    }
    

    Richtig wäre so:

    #include <stdio.h>
    
    int main ()
    {
    	int x;
    	int y;
    
    	printf("Bitte geben Sie eine Zahl für x ein!\n");
    	scanf(" %d", &x );
    
    	printf("Bitte geben Sie eine Zahl für y ein!\n");
    	scanf(" %d" , &y );
    
    	if (x > y)
    		printf(" Jo X ist größer du Sack\n");
    	else
    		printf(" Jo Y ist größer du Sack\n");
    
    	return 0;
    }
    


  • Jawoll, super vielen dank läuft optimal 🙂

    Die Dos box wird geöffnet und bleibt offen bis ich meine Eingaben getätigt habe, oder einfach schließe.

    Doch eine sache bleibt trotzdem.
    Kann ich das vielleicht irgendwie so einstellen das die box sich nicht selber automatisch schließt. Weil bei mir ist das in Moment so das wenn ich meine zwei eingaben für die Variablen x und y betätig habe, die Box sich sofort schließt, sodass man den Effekt der "If-schleife" nicht erkennen kann.



  • 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();



  • Noobkiller16 schrieb:

    Jawoll, super vielen dank läuft optimal 🙂

    Die Dos box wird geöffnet und bleibt offen bis ich meine Eingaben getätigt habe, oder einfach schließe.

    Doch eine sache bleibt trotzdem.
    Kann ich das vielleicht irgendwie so einstellen das die box sich nicht selber automatisch schließt. Weil bei mir ist das in Moment so das wenn ich meine zwei eingaben für die Variablen x und y betätig habe, die Box sich sofort schließt, sodass man den Effekt der "If-schleife" nicht erkennen kann.

    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.



  • 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/


Anmelden zum Antworten