Liebe Leser,
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 9 von 10
  1. #1
    Registriert seit
    04.2010
    Beiträge
    15

    C - Programmieren: Schwarzes Fenster schließt sich sehr schnell wieder

    Hallo,
    Wenn ich einen Text im Editor schreibe und dann compiliere, muss man es ja ausführen. Wenn ich es ausführe kommt wie gewöhnlich so ein schwarzes Fenster. Bei mir schließt es sich immer bevor ich irgendetwas lesen kann. Weiß jemand warum?

    Ich habe Windows 7 und das Compilier-Programm DEV 4.9.9.2

  2. #2
    Registriert seit
    08.2008
    Beiträge
    836
    Mache einfach mal ein "getch();" an das Ende Deines Programmes. Getch wartet auf die eingabe eines Zeichens auf der Tastatur. Damit sollte das Fenster offen bleiben.
    Gruß

    Die Fettbemme

  3. #3
    Registriert seit
    04.2010
    Beiträge
    15
    Zitat Zitat von Fettbemme Beitrag anzeigen
    Mache einfach mal ein "getch();" an das Ende Deines Programmes.
    Meinst du das so?
    #include <stdio.h>

    main(){
    printf("\nDies isnt ein erstes C-Programm.\n");
    printf("\nWie sie sehen, kann 'printf' ");
    printf("nicht nur Texte drucken,\n");
    printf("sondern auch rechnen. \n\n");
    printf("13 * 7 = %i \n",13 * 7); }

    getch();
    Denn so klappt es nicht

  4. #4
    Registriert seit
    08.2008
    Beiträge
    836
    Zitat Zitat von ozzyn06 Beitrag anzeigen
    Meinst du das so?
    Nein eher so:
    Code:
    #include <stdio.h>
    #include <conio.h>  // conio.h enth&#228;lt "getch"
    
    main()
    {
      printf("\nDies isnt ein erstes C-Programm.\n");
      printf("\nWie sie sehen, kann 'printf' ");
      printf("nicht nur Texte drucken,\n");
      printf("sondern auch rechnen. \n\n");
      printf("13 * 7 = &#37;i \n",13 * 7); 
    
      _getch();
    }
    Das getch() sollte schon vor der abschlie&#223;enen Klammer Deiner main sein!. Ich habe jetzt &#252;brigens "_getch" genommen, ist laut MSDN nach ISO C++ das was man jetzt verwenden soll. Meine letzte Console ist halt schon etwas her....
    Gruß

    Die Fettbemme

  5. #5
    Registriert seit
    04.2010
    Beiträge
    15
    Ok, Danke!
    Jetzt funktioniert es, aber wenn ich jetzt eine Wahl, oder ähnliches machen muss und einen Buchstaben reinschreiben muss, Wie kann ich das dann machen ohne das Programm zu schließen?

  6. #6
    Registriert seit
    08.2008
    Beiträge
    836
    Mir ist nicht klar was Du meinst, meinst Du sowas?

    Code:
    #include "stdafx.h"
    #include <conio.h>
    #include <ctype.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
      int zahl1, zahl2;
      
      printf("\nDies isnt ein erstes C-Programm.\n");
      printf("\nWie sie sehen, kann 'printf' ");
      printf("nicht nur Texte drucken,\n");
      printf("sondern auch rechnen. \n\n");
      printf("13 * 7 = &#37;i \n",13 * 7); 
      printf("\n\n");  
      
      printf("Eingabe Zahl 1: ");
      scanf("%d", &zahl1);
      printf("Eingabe Zahl 2: ");
      scanf("%d", &zahl2);
      printf("Zahl1 + Zahl 2 = %d", zahl1 + zahl2);
    
      _getch();
    
      return 0;
    }
    Gruß

    Die Fettbemme

  7. #7
    Registriert seit
    04.2010
    Beiträge
    15
    Ja genau, Vielen Dank!

  8. #8
    Registriert seit
    04.2010
    Beiträge
    15
    Jetzt habe ich noch eine Frage.
    Wenn ich das in den Compiler schreibe,
    #include <stdio.h>
    #include <ctype.h>

    main () {
    char eingabe;
    int zahl;
    printf("\nWaehlen Sie (O)ktal, (H)ex, oder (A)SCII > ");
    eingabe=getchar;
    printf("\nBitte Dezimalzahl eingeben:");
    scanf("i&#37;" ,&zahl);
    switch(toupper(eingabe)) {

    case 'O': printf("Dezimal %i = Oktal %o \n", zahl,zahl);
    break;

    case 'A': printf("Dezimal %i = Hexadezimal %x \n",zahl,zahl);
    break;

    case 'H': if(zahl <= 255)
    printf("ASCII-Code %i entspricht %c \n", zahl,zahl);

    else
    printf("Diese Zahl ist zu gro&#223;\n\a");
    break; }
    getch(); }
    funktioniert es nicht. Dh. wenn ich a, o oder h eingebe, springt es bei enter in die n&#228;chste zeile ohne irgendwas anzugeben und beim erwiedern von enter schlie&#223;t es sich. Habt ihr eine L&#246;sung?

  9. #9
    Avatar von root
    root ist offline Moderator
    Mein System
    ProzessorLaptop: Intel Pentium Dual-Core T2370, 1.73GHz; Netbook: AMD Athlon II Neo K125 (1.7GHz)
    GrafikkarteLaptop: Intel GMA 965; Netbook: AMD/ATI RS880M (Mobility Radeon HD 4200)
    RAMLaptop und Netbook jeweils 2 GB
    Festplatte(n)Laptop: Hitachi HTS54252, 240 GB; Netbook: Seagate Momentus 7200.4 320 GB
    SoundkarteLaptop: Intel 82801H
    BetriebssystemLaptop und Netbook: DebianGNU/Linux Testing ("Jessie")
    SonstigesLaptop: Kernel: Linux-libre 3.9.0-gnu, Desktop-Umgebung: Gnome 3.4.2; Netbook: Kernel: Linux 3.2.0, Desktop-Umgebung: IceWM + Eterm + GNU Emacs
    Registriert seit
    06.2007
    Ort
    Pale Blue Dot
    Beiträge
    1.634
    Zitat Zitat von ozzyn06 Beitrag anzeigen
    eingabe=getchar;
    Du hast die Klammern bei getchar vergessen. Dass sie angegeben werden müssen, steht sogar in deinem Buch auf Seite 60 unter Punkt 3. (Ich habe das gleiche)

    Gruß, root

    EDIT: Noch ein Tippfehler:
    scanf("i%" ,&zahl); ist falsch. Es heißt scanf("%i" ,&zahl);
    methinks it is like a weasel
    C-x C-c

Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
12
Content Management by InterRed