x-kom hosting

C++

Fisherek
utworzono
utworzono

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
komentarz

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
komentarz

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
komentarz
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
komentarz

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
komentarz

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
komentarz

a nie wyskakuje błąd?

powinno byc przecież:

std::cout<<"Witamy na pokladzie";
luq
komentarz
komentarz

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
komentarz

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
komentarz

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
komentarz

Lucider, po co zatrzymywać konsolowy program po wykonaniu? Autor książki musiałby być jakimś ćwokiem. :lol:

Lucider
komentarz
komentarz
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
komentarz

No tak - potrzeba matką wynalazku. :P Na szczęście nie zawsze. :P

luq
komentarz
komentarz
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
komentarz

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
komentarz
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
komentarz

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
komentarz
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
komentarz

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? :P No cóż potrzeba matką wynalazku. :P 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
komentarz

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
komentarz
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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.