probleme mit codeblock

Windowsspezifische Probleme, WinAPI, conio.h
garf
Beiträge: 13
Registriert: Mi Mai 21, 2014 3:38 pm

probleme mit codeblock

Beitrag von garf » Mi Mai 21, 2014 4:43 pm

hallo,

ich habe c-programme geschrieben und erfolgreich compiliert. komisch ist, dass ich bei einem explizit die konsole manuell offen halten muss. dafür verwende ich

Code: Alles auswählen

system("pause") ;
das andere programm kommt ganz ohne diese hilfe aus.

nerviger ist, dass es ewig dauert bis etwas in der geöffneten konsole angezeigt wird. also nachdem f9 gedruckt wurde, öffnet sich das fenster aber es vergeht einige zeit (über eine minute bis text erscheint). wird die exe-datei gestartet, steht der text sofort drin.

es handelt sich um kleine programme (ca. 15 zeilen)

gibt es hierfür eine einstellung?

os: windows 7 prof
code:block 13.12 (32-bit)

xerion21
Beiträge: 162
Registriert: Mo Jul 08, 2013 3:37 pm

Re: probleme mit codeblock

Beitrag von xerion21 » Mi Mai 21, 2014 5:11 pm

garf hat geschrieben: ich habe c-programme geschrieben und erfolgreich compiliert. komisch ist, dass ich bei einem explizit die konsole manuell offen halten muss. dafür verwende ich
Das kenne ich genauso. Wenn man die Programme mit der IDE startet, benötigt man noch ein Wartebefehl.

Wenn man die Programme jedoch per commandline startet, dann benötigt man diesen Befehl nicht, da das Programm in der "Dos-Box" ausgeführt wird

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8492
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: probleme mit codeblock

Beitrag von Xin » Mi Mai 21, 2014 5:34 pm

Moin,
garf hat geschrieben:gibt es hierfür eine einstellung?
Den "Wartebefehl" ist eigentlich nur nötig, damit das Fenster nicht sofort wieder verschwindet - was ja normal wäre, da das Programm beendet ist: Wieso blinkt mein Programm nur kurz auf und verschwindet dann sofort wieder?
Ein Breakpoint am Ende ist noch eine übliche Methode.

Was die Ausgabe angeht: Könntest Du da etwas Quelltext mitliefern?
Sonst kann ich nur raten, dass dir ein

Code: Alles auswählen

fflush( stdout );
weiterhelfen könnte.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

garf
Beiträge: 13
Registriert: Mi Mai 21, 2014 3:38 pm

Re: probleme mit codeblock

Beitrag von garf » Mi Mai 21, 2014 6:09 pm

danke. normalerweise bedarf es aber kein wartebefehl und jetzt geht es komischerweise ohne wartebefehl.

leider dauert es immer noch sehr lange bis im fenster u.a. dies erscheint

Process returned 32 <0x20> execution time : 30.108 s

im erstellungsprotokoll wird dies ausgegeben
Process terminated with status -1073741510 (0 minute(s), 46 second(s))

die wartezeit ist doppelt so lang, wie das programm benötigt

nufan
Wiki-Moderator
Beiträge: 2448
Registriert: Sa Jul 05, 2008 3:21 pm

Re: probleme mit codeblock

Beitrag von nufan » Mi Mai 21, 2014 6:15 pm

garf hat geschrieben:Process returned 32 <0x20> execution time : 30.108 s

im erstellungsprotokoll wird dies ausgegeben
Process terminated with status -1073741510 (0 minute(s), 46 second(s))
Das sieht meiner Meinung nach aber nicht so aus als würde dein Programm korrekt beendet werden. Kannst du deinen Code zeigen?

garf
Beiträge: 13
Registriert: Mi Mai 21, 2014 3:38 pm

Re: probleme mit codeblock

Beitrag von garf » Mi Mai 21, 2014 7:17 pm

hier der code

Code: Alles auswählen

#include <stdio.h>
main() {
    int x=0, y=0, p=0; //x bestanden, y nicht bestanden, p punkte
    printf("\nEingabe abbrechen mit -1");
    printf("\n------------------------\n\n");

    for(;p!=-1;){
        printf("Punkte im Test: ");
        scanf("%i", &p);
        if(p>=20)
            x++;
        else
            y++;
    }
    y--;   
    printf("\nbestandene Studenten: %i", x);
    printf("\nnicht bestandene Studenten: %i\n\n", y);
    //system("pause");
}

nufan
Wiki-Moderator
Beiträge: 2448
Registriert: Sa Jul 05, 2008 3:21 pm

Re: probleme mit codeblock

Beitrag von nufan » Mi Mai 21, 2014 7:30 pm

garf hat geschrieben:hier der code

Code: Alles auswählen

#include <stdio.h>
main() {
    int x=0, y=0, p=0; //x bestanden, y nicht bestanden, p punkte
    printf("\nEingabe abbrechen mit -1");
    printf("\n------------------------\n\n");

    for(;p!=-1;){
        printf("Punkte im Test: ");
        scanf("%i", &p);
        if(p>=20)
            x++;
        else
            y++;
    }
    y--;   
    printf("\nbestandene Studenten: %i", x);
    printf("\nnicht bestandene Studenten: %i\n\n", y);
    //system("pause");
}
Kannst du das mal so versuchen:

Code: Alles auswählen

#include <stdio.h>
int main() {
    int x=0, y=0, p=0; //x bestanden, y nicht bestanden, p punkte
    printf("\nEingabe abbrechen mit -1");
    printf("\n------------------------\n\n");

    for(;p!=-1;){
        printf("Punkte im Test: ");
        scanf("%i", &p);
        if(p>=20)
            x++;
        else
            y++;
    }
    y--;   
    printf("\nbestandene Studenten: %i", x);
    printf("\nnicht bestandene Studenten: %i\n\n", y);
    //system("pause");
    return 0;
}
Was kriegst du dann als Ausgabe von der IDE?

Warum du zum Schluss noch machst weiß ich ehrlich gesagt nicht.

garf
Beiträge: 13
Registriert: Mi Mai 21, 2014 3:38 pm

Re: probleme mit codeblock

Beitrag von garf » Mi Mai 21, 2014 7:47 pm

dani93 hat geschrieben: Was kriegst du dann als Ausgabe von der IDE?

Warum du zum Schluss noch machst weiß ich ehrlich gesagt nicht.
damit die anzahl stimmt. die eingabe der abbruchbedingung erhöht y nämlich um 1.

ausgabe
Process terminated with status 0 (0 minute(s), 41 second(s))

wartezeit hat sich aber nicht verkürzt, ist noch immer so lange.

ist

Code: Alles auswählen

return 0;
nicht eine wartebedingung?

wie lange dauert es bei dir, bis du etwas lesen kannst?

nufan
Wiki-Moderator
Beiträge: 2448
Registriert: Sa Jul 05, 2008 3:21 pm

Re: probleme mit codeblock

Beitrag von nufan » Mi Mai 21, 2014 7:53 pm

garf hat geschrieben:damit die anzahl stimmt. die eingabe der abbruchbedingung erhöht y nämlich um 1.
Ah, verstehe schon. Nicht gerade eine schöne Lösung, aber funktioniert so. Du kannst ja einfach zum else noch eine Bedingung hinzufügen.
garf hat geschrieben:ausgabe
Process terminated with status 0 (0 minute(s), 41 second(s))
Viel besser :)
garf hat geschrieben:ist

Code: Alles auswählen

return 0;
nicht eine wartebedingung?
Nein, es gibt nur einen Statuscode an den Aufrufer (im Fall von main das Betriebssystem) zurück.
garf hat geschrieben:wie lange dauert es bei dir, bis du etwas lesen kannst?
Was genau meinst du? Am Anfang und sobald ich eine Zahl eingebe und Enter drücke kommt die nächste Ausgabe.

garf
Beiträge: 13
Registriert: Mi Mai 21, 2014 3:38 pm

Re: probleme mit codeblock

Beitrag von garf » Mi Mai 21, 2014 8:48 pm

dani93 hat geschrieben:
garf hat geschrieben:
garf hat geschrieben:wie lange dauert es bei dir, bis du etwas lesen kannst?
Was genau meinst du? Am Anfang und sobald ich eine Zahl eingebe und Enter drücke kommt die nächste Ausgabe.
hm bei mir öffnet sich das fenster aber ich muss über eine minute warten, bis ein buchstabe erscheint, nachdem ich eine zahl eingegeben habe, kommt sofort die nächste abfrage. sehr seltsam.

danke.

Antworten