Dodaj do ulubionych

okno programu za szybko się zamyka

02.01.06, 17:22
gdy otwieram mój program to nie zdąrze nawet zobaczyć wyniku a już się zamyka. Jak by ktoś znał funkcje zatrzymującą zamykanie byłbym wdzięczny :)
Obserwuj wątek
    • prog1101 Re: okno programu za szybko się zamyka 02.01.06, 20:47
      to jest szablon:
      program coś_tam;
      uses crt;
      begin
      clrscr;
      treść programu
      end.
      • jasnoniebieski.5 Re: okno programu za szybko się zamyka 02.01.06, 22:38
        Albo na koncu dopisz dwa razy readln (po jednym nie zawsze sie zatrzyma) :)

        PS.
        mx.5 - Dzieki za pomoc ale juz zrobilem ten program z zabkami po swojemu. W
        sumie 30 linijek programu :) Myslalem myslalem az w koncu cos mnie naszlo i w 15
        minut mialem nowy kompletny program mieszczacy sie w niecalym oknie :) Ale
        dzieki za swoj pomysl :)
    • mx-5 Re: okno programu za szybko się zamyka 02.01.06, 21:05
      Nie napisales w jakim jezyku ;)

      Jesli w Pascalu to faktycznie writeln na koniec pomaga, ale nie ma to za bardzo
      sensu, bo wynik mozesz obejrzec naciskajac alt+F5

      W C jest taka funkcja getch() - czeka na wcisniecie klawisza( get character)
      Jesli programujesz w C++/ programujesz w C uzywajac kompilatora C++
      byc moze bedziesz musial dodac #include <conio.h> z definicja tej funkcji.
      Pozdrawiam!
      • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 12:40
        W C (bibliotece standardowej) to jest, mój drogi, raczej getc(). getch() jest
        już składnikiem curses.
    • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 16:29
      Język ANSI C prubowalem z tym getch() i getc() ale wyskakiwaly bledy podczas kopilacji. Używam kompilatora Dev-C++
      • mx-5 Re: okno programu za szybko się zamyka 03.01.06, 17:13
        W skrocie getch to getc bez buforowania.
        W K&R getch jest wspomniana na str. 112 co czyni ja na rowni funkcji bedacej w
        standardzie.

        taki program MUSI kompilowac sie bez przeszkod:

        #include <stdio.h>

        int main( void )
        {
        getch();
        return 0;
        }
        • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 18:38
          Tak? Proszę bardzo:
          bec@mewa:~$ cat prog.c && gcc prog.c -o prog
          #include <stdio.h>

          int main() {
          getch();
          return 0;
          }
          /tmp/ccs0QBW3.o: In function `main':prog.c:(.text+0x1d): undefined reference to
          `getch'
          collect2: ld returned 1 exit status
          bec@mewa:~$
          • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 18:41
            A dla ścisłości:
            bec@mewa:~$ cat prog.c && gcc prog.c -lcurses -o prog
            #include <curses.h>

            int main() {
            getch();
            return 0;
            }
            bec@mewa:~$
    • mx-5 Re: okno programu za szybko się zamyka 03.01.06, 18:53
      Tak zgadza sie - moj blad :)

      W K&R getch byl po prostu bezposrednio napisany jako funkcja.
      Mimo to kompilatory w stylu Dev-C++ nie krzycza jak gcc.
      Program w stylu

      #include <stdio.h>

      int main( void )
      {
      getch();
      return 0;
      }

      pod dev c++ kompiluje sie bez zadnych problemow.Co dziwniejsze z opcja Zgodnosc
      z ANSI C.
      A Visual C++ żąda <conio.h> :)
      • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 19:19
        kurde już miałem fajnie okno zamykalo sie po nacisnieciu przycisku ale po napisaniu nastepnego programu skompilowal mi sie w porzadku ale nie chce sie uruchomic tak samo ten wczesniejszy tez sie juz nie uruchamia
        • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 19:34
          nie wyskakuje zaden blad ani nic. Za pomoc z gory dziekuje:)
        • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 19:49
          A może byś pokazał kod? Mamy się domyślać?
          • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 19:58
            Na wszelki wypadek wyjście po naciśnięciu entera:
            #include <stdio.h>

            int main( void ) {
            getc( stdin );
            }

            Zamiast getc( stdin ) możesz napisać getchar().
            • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 20:45
              ucze sie programowac z ksiazka i pierwszy program to:
              #include<stdio.h>
              main()
              {
              printf("ahoj, przygodo\n");
              }
              i on sie wlasnie tak szybko zamykal. Później napisałem tak:
              #include<stdio.h>
              #include<conio.h>
              main()
              {
              printf("ahoj, przygodo\n");
              getch();
              }
              i dzilalo dobrze ale po napisaniu nastepnego już obydwasie nie chcialy uruchomic chociaz ten pierwszy na poczatku dzialal. Nic po prostu nie wyskakuje, wczesniej migalo tak szybko a teraz nic. Ten drugi program jest tez z ksiazki wiec bedzie mial dobry kod. Ten twoj program tez sie kompiluje i nie chce uruchomic.
              • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 21:44
                Dość dziwne, nie wiem czemu tak się może dziać. Te programy są dobre, choć zamiast
                main() {
                }
                Mógłbyś pisać jawnie:
                int main() {
                return 0;
                }
                Skoro się uczysz, to wypadałoby dbać o takie szczegóły - później będzie za późno ;)

                Próbowałeś z getchar() bez conio.h? Pokaż też składnię polecenia, którym
                kompilujesz.
                • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 21:56
                  zmienilem te main na int main i dodale return 0 ale dalej nic. Ja używam tego Dev-C++ i tam poprostu naciskam kompiluj, ale żadne błedy nie wyskakuja.
                  • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 22:22
                    Acha. Używasz kompilatora C++, piszesz natomiast w C. To są różne języki.
                    Zainstaluj sobie gcc na przykład - pod windowsa też jest. A moja poprawka miała
                    tylko kosmetyczny charakter.
                    • hydroxyzine Re: okno programu za szybko się zamyka 03.01.06, 22:26
                      To tylko sugestia zresztą, nie piszę w C++. Być może Dev-C++ potrafi kompilować
                      poprawnie kod zgodny z ANSI C, a problem wynika z czego innego.
                • kanar5 Re: okno programu za szybko się zamyka 03.01.06, 21:57
                  Jak byś może mógł mi polecić jakis inny kompilator to bym mógł spróbować.
                  • kanar5 Re: okno programu za szybko się zamyka 04.01.06, 16:44
                    odinstalowalem tego dev-c++ i zainstalowalem jeszcze raz i mi wszystko dziala. Dziekuja za pomoc. Jak by mogl mi ktos jeszcze podac wzor programu wypisujacy wartosc EOF
                    • hydroxyzine Re: okno programu za szybko się zamyka 04.01.06, 19:44
                      ???
                      Nie wiem, czy dobrze zrozumiałem pytanie.

                      #include <stdio.h>

                      int main() {
                      printf( "Wartość EOF: dec %d hex %x\n", EOF, EOF );
                      }

                      O to ci chodziło?
                      • jacu131 Re: okno programu za szybko się zamyka 05.01.06, 14:41
                        w dev c++ wystarczy:
                        int main()
                        {
                        ............
                        ............
                        system("pause");
                        return(0);
                        }

                        system("pause"); zatrzymuje program
                        • kanar5 Re: okno programu za szybko się zamyka 05.01.06, 19:26
                          a jak mam wpisac te EOF aby zakonczyc petle w programie zliczjacym znaki:
                          #include<stdio.h>

                          int main()
                          {
                          double nc;
                          for(nc=0; getchar()!=EOF; ++nc)
                          ;
                          printf("%.0f\n", nc);
                          system("pause");
                          return(0);
                          }
                          • mx-5 Re: okno programu za szybko się zamyka 05.01.06, 22:12
                            licznika nie powinienes deklarowac jako double z kilku powodow:

                            1) zliczasz znaki czyli wynik jest liczba calkowita ( po co rzeczywista )
                            2) double jest typem strasznie obeszrnym pamieciowo
                            3) typow float/double powinno sie uzywac tylko w ostatecznosci/koniecznosci z
                            powodow ich nieprzewidywalnych numerycznych zachowan ;]
                            • kanar5 Re: okno programu za szybko się zamyka 05.01.06, 22:29
                              tylko nie wiem jak mam zakonczyc dzialanie petli. Musze wypisac ten znacznik konca programu ale nie wiem jak
                          • mx-5 Re: okno programu za szybko się zamyka 05.01.06, 22:48
                            Jak wiesz EOF nie ma na klawiaturze ;)
                            Aby uzyskac EOF musisz nacisnac ctrl+c.

                            Jesli chcesz by koncem byl enter, nie wstawiasz tam eofa tylko znak
                            nowego wiersza czyli '\n' ( a dokladnie numer tego znaku, bo getchar zwraca inta).
                            I nie za bardzo wiem czy uczysz sie programowac C czy C++ bo w C++ nie ma
                            funkcji printf...
                          • hydroxyzine Re: okno programu za szybko się zamyka 06.01.06, 00:24
                            To EOF przydaje się, jeżeli strumień wyjściowy programu czytającego plik
                            przekierowujesz na wejście twojego programu. Tzn, zamiast
                            stdin(klawiatura)->program->stdout(monitor) masz tak: wyjście programu
                            czytającego plik->twoj_program->stdout(monitor). W systemach Unix-like zrobisz
                            to tak:
                            cat nazwa_pliku | nazwa_programu. W windowsie nie wiem. W ogóle ciężko w nim
                            cokolwiek zrobić.
                            Podobnie ma się sprawa z czytaniem z pliku otwartego w twoim programie (np.
                            zamiast getchar()=getc(stdin) używasz getc(FILE *plik) - wtedy EOF mówi ci o
                            jego końcu. W przypadku używania klawiatury jako str. wejściowego, korzystanie z
                            EOF mija się z celem.
Inne wątki na temat:

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka