Fisherek utworzono 15 listopada 2008 utworzono 15 listopada 2008 Od niedawna zabrałem się za C++ i wiele ludzi pisze na forach ze na początek najlepiej przeczytać "Symfonie c++" - Jerzego Grębosza. Więc tak też postąpiłem, problem się zaczął jak chciałem przetestowac pierwszy program który jest w tej książce. #include <iostream.h>main ( ){ cout << "Witamy na pokladzie" ;} Efekt końcowy powinien być taki, że na ekranie będzie napis "Witamy na pokladzie" U mnie zamiast owego napisu otwiera się czarne okno (chyba wiersz poleceń) i w mgnieniu oka znika, a na ekranie nie ma żadnego napisu... Co jest nie tak? Z góry thx
luq komentarz 16 listopada 2008 komentarz 16 listopada 2008 Program uruchamia się ale po zakończeniu zamyka się. Możesz albo odpalić go z konsoli, albo dodać na końcu programu std::cin.get(); Dzięki czemu program będzie czekał na wciśnięcie klawisza.
Fisherek komentarz 16 listopada 2008 Autor komentarz 16 listopada 2008 Z konsoli, czyli jak? Ten drugi sposób sprawdziłem i wszystko działa. Mógłbyś mi jeszcze wytłumaczyć dlaczego po napisaniu programiku jak w książce, robi się tak jak opisałem w poprzednim poście a nie tak jak powinno? thx
leggo komentarz 16 listopada 2008 komentarz 16 listopada 2008 Mógłbyś mi jeszcze wytłumaczyć dlaczego po napisaniu programiku jak w książce, robi się tak jak opisałem w poprzednim poście a nie tak jak powinno? Robi się dokładnie tak jak powinno. Program wykonuje wszystkie operacje, jakie mu wykonać kazano, a po skończeniu pracy się wyłącza. Na końcu programu możesz też umieszczać: system("PAUSE");
Lucider komentarz 16 listopada 2008 komentarz 16 listopada 2008 Czytaj książkę dalej, w dalszych rozdziałach na pewno podadzą końcową linijkę, która będzie zapobiegała natychmiastowemu wyłączeniu się programu
luq komentarz 16 listopada 2008 komentarz 16 listopada 2008 Z konsoli - to znaczy przechodzisz w konsoli do folderu gdzie masz program (polecenie cd) i jak jesteś w tym folderze, wpisujesz nazwę programy. Możesz też dodać do zmiennej systemowe PATH ścieżkę w której masz programy, wtedy będziesz się mógł się do nich łatwiej odwoływać (włączać).
ogrod87 komentarz 16 listopada 2008 komentarz 16 listopada 2008 a nie wyskakuje błąd? powinno byc przecież: std::cout<<"Witamy na pokladzie";
luq komentarz 18 listopada 2008 komentarz 18 listopada 2008 Ogólnie, to tak, ogrod87 masz rację #include <iostream.h> też nie powinno chwycić , bo powinno być #include <iostream> Zależne od kompilatora czy debuger wywali błąd, ostrzeżenie czy przejdzie.
ogrod87 komentarz 18 listopada 2008 komentarz 18 listopada 2008 nie zadeklarował też przestrzeni nazw. ale z tego co pamiętam jak czytałem symfonię, to na początku tego nie było, potem dopiero autor pisze o tym
luq komentarz 18 listopada 2008 komentarz 18 listopada 2008 ogrod87 teraz mylisz. Można zadeklarować całą przestrzeń using namespace std; i używać wtedy: cout << "luq"; lub pisać odnosząc się obiektów z przestrzeni std::cout można też połączyć te 2 sposoby, np using std::cout;using std::cin;(...)cout << "luq" << std::endl;
Esus komentarz 18 listopada 2008 komentarz 18 listopada 2008 Lucider, po co zatrzymywać konsolowy program po wykonaniu? Autor książki musiałby być jakimś ćwokiem. :lol:
Lucider komentarz 18 listopada 2008 komentarz 18 listopada 2008 Lucider, po co zatrzymywać konsolowy program po wykonaniu? Autor książki musiałby być jakimś ćwokiem. W przypadku podanego przez autora tematu przykładu przyczyna jest prosta - po to, żeby go zobaczyć...
Esus komentarz 19 listopada 2008 komentarz 19 listopada 2008 No tak - potrzeba matką wynalazku. Na szczęście nie zawsze.
luq komentarz 19 listopada 2008 komentarz 19 listopada 2008 Lucider, po co zatrzymywać konsolowy program po wykonaniu? Autor książki musiałby być jakimś ćwokiem. :lol: A po to, żeby odpalając je nie z pod konsoli zobaczyć efekt. Kto powiedział, że konsolowe programy trzeba z pod konsoli odpalać?
Esus komentarz 20 listopada 2008 komentarz 20 listopada 2008 Może dlatego, że programy konsolowe, jak sama nazwa wskazuje służą do odpalania w konsoli? Co więcej... są w niej uruchamiane?
Lucider komentarz 20 listopada 2008 komentarz 20 listopada 2008 Może dlatego, że programy konsolowe, jak sama nazwa wskazuje służą do odpalania w konsoli? Co więcej... są w niej uruchamiane? Co Ty pleciesz? Żyjesz w erze klikania w ikony, era odpalania z poziomu konsoli minęła już dawno temu. Pominę fakt, że dobry programista zadba o to, aby w obu przypadkach program działał prawidłowo.
grucha komentarz 20 listopada 2008 komentarz 20 listopada 2008 Skoro era pisania pod konsole już minęła to po co pisać pod konsolę? :> Jeśli już w niej piszesz to chociaż naucz się odpalać programy spod konsoli chociażby z tego powodu, że niektóre programy np. potrzebują jakiś parametrów... I jeszcze a propos tego "nie pisania" w konsoli, to popracuj sobie trochę w Linuksie
Lucider komentarz 20 listopada 2008 komentarz 20 listopada 2008 Skoro era pisania pod konsole już minęła to po co pisać pod konsolę? :> Jeśli już w niej piszesz to chociaż naucz się odpalać programy spod konsoli chociażby z tego powodu, że niektóre programy np. potrzebują jakiś parametrów...I jeszcze a propos tego "nie pisania" w konsoli, to popracuj sobie trochę w Linuksie To co napisałeś nazywam komplikowaniem rzeczy łatwych, dlatego że sam potrafisz sobie odpowiedzieć na te pytania, ale z jakiegoś dziwnego powodu napisałeś to dla samego sensu zripostowania - należy pisać pod konsole bo od tego lepiej zacząć naukę programowania, bo nie wszystkie rzeczy da się załatwić okienkowo, bo nie wszystkie rzeczy trzeba załatwiać okienkowo, bo istnieją wspomniane przez Ciebie parametry, bo to ciekawe i rozwijające, bo dzięki temu program jest lekki itp itd. Jesteś na forum komputerowym i zdecydowanej większości nie musisz informować o tym jak się pracuje na Linuksie, przecież wiem że jest ogromna rzesza ludzi, którzy z konsoli korzystają. Nie mniej jednak nie zaprzeczysz, że grupa ta ma się raczej marnie procentowo w porównaniu z grupą ludzi, dla których odpalenie programu ogranicza się do kliknięcia. I właśnie dlatego powinno się program powstrzymać od natychmiastowego halta po wykonaniu wszystkich operacji.
Esus komentarz 20 listopada 2008 komentarz 20 listopada 2008 Nie proszę pana, pisanie programów konsolowych i odpalanie ich "w okienkach" to droga na około i komplikowanie sobie życia. Lucider, proszę podaj mi przykład przynajmniej jednego programu konsolowego, który korzysta z lamerskiego system("PAUSE"); przed wywołaniem komunikatu powrotu. Proszę, przeproś rzeszę programistów, która w tych ciężkich czasach pisze programy konsolowe bez martwienia się o to, że jakiś niezorientowany człowiek uruchomi jego program w okienku, bo widzisz - chyba ich obraziłeś nazywając złymi programistami. Jak czytam na jakimś forum, że dajmy na to "John the Ripper się nie uruchamia" albo "miga i od razu się zamyka" to na prawdę nie widzę nic złego w działaniu Peslyaka, który napisał ten program. Żal mi jedynie tych, którzy biorą się za cokolwiek związanego z informatyką a nie wiedzą nawet jak wygląda konsola, ba, nie wiedzą w jaki sposób taki program jest uruchamiany w środowisku systemu operacyjnego. Jeśli ktoś sobie zatrzymuje proces tylko po to żeby zobaczyć co wypluwa to może od razu do otwierania puszki sardynek używać krzesła? No cóż potrzeba matką wynalazku. Jeszcze kilka lat temu ktoś bardzo sprytny wymyślił, że można budować layout witryn internetowych za pomocą tabeli z border="0" i chyba każdy kto zna się nieco na budowie stron internetowych wie do jakiej katastrofy to doprowadziło. Ale to dyskusja nie na to forum. Chciałem jedynie powiedzieć, że rzeczone otwieranie puszki za pomocą krzesła uważam za przejaw arogancji i nie potrafię zaakceptować.
Lucider komentarz 20 listopada 2008 komentarz 20 listopada 2008 No niestety nie przeproszę owej rzeszy, bo nie zauważacie jednego - mnie nie musicie uczyć niczego na temat sposób programowania i znaczenia konsoli w informatyce. Zatrzymanie programu przed jego zakończeniem jest odpowiedzią na problem autora tematu. A to właśnie tej konkretnej sytuacji się to tyczy.
Fisherek komentarz 21 listopada 2008 Autor komentarz 21 listopada 2008 a nie wyskakuje błąd?powinno byc przecież: std::cout<<"Witamy na pokladzie"; Ogólnie, to tak, ogrod87 masz rację #include <iostream.h> też nie powinno chwycić , bo powinno być #include <iostream> Zależne od kompilatora czy debuger wywali błąd, ostrzeżenie czy przejdzie. Przepraszam was, że tak długo nie pisałem w swoim temacie ale tak wyszło. Odnośnie tych cytatów powyżej to żaden błąd nie wyskakuje. No niestety nie przeproszę owej rzeszy, bo nie zauważacie jednego - mnie nie musicie uczyć niczego na temat sposób programowania i znaczenia konsoli w informatyce. Zatrzymanie programu przed jego zakończeniem jest odpowiedzią na problem autora tematu. A to właśnie tej konkretnej sytuacji się to tyczy. Chciałem tylko prostej odpowiedzi a jakieś kłótnie się z tego porobiły ;/ Otrzymałem odpowiedź dlaczego okno się od razu zamykało i po problemie. Pozdrawiam:)
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.