Strona 1 z 1

Hello world w C++ nie wyświetla się

: 19 lis 2008, 21:06
autor: lyrix
Witam Szanownych Forumowiczów,

pomyślałem, że dobrze jeśli umieszczę ten wątek zamiast w przedszkolu tutaj, z uwagi na jego lekkie zaawansowanie :).

Zainstalowałem sobie build-essentials, w którym był g++. Napisany kod wygląda tak:

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
        cout << "Hello World!" << endl;
        return 0;
}
Kompiluję poleceniem

Kod: Zaznacz cały

g++ -Wall plik.cpp -o plik
Nadaję mu też prawa wykonania chmod a+r plik

I problem zaczyna się, gdy klikam na programik, i nic mi nie wyskakuje. Jeśli program uruchamia się w tle, to jak zobaczyć efekt jego działania na ekranie?

Z góry dziękuję za wskazówki lub rozwiązanie i przepraszam, jeśli rozwiązanie już gdzieś wisi na forum (nie znalazłem jednak żadnego podobnego problemu).

pozdrawiam

Odp: Hello world w C++ nie wyświetla się

: 19 lis 2008, 21:46
autor: vtr
lyrix pisze:
I problem zaczyna się, gdy klikam na programik, i nic mi nie wyskakuje.

pozdrawiam
powinieneś wejść w konsoli do katalogu gdzie znajduje się skompilowany plik w twoim przypadku jest to "plik" i wydać polecenie:

Kod: Zaznacz cały

./plik

Odp: Hello world w C++ nie wyświetla się

: 19 lis 2008, 21:52
autor: lyrix
No tak. zamiast ./plik wpisywałem po prostu plik, a bash mi to traktował jako odwołanie do jakiegoś jego polecenia. Wnioskuję, że wszystkie "programy tekstowe" trzeba tak uruchamiać. Dzięki ;)

Odp: Hello world w C++ nie wyświetla się

: 19 lis 2008, 22:09
autor: vtr
to nie tak, te jak to nazwałeś polecenia bash-a to też programy tyle że znajdujące się w katalogu wpisanym do zmiennej PATH, ponieważ katalog w którym znajduje się twój program nie jest dodany do tej zmiennej musisz podać do niego pełną ścieżkę, kropka oznacza katalog bieżący a później masz / i nazwa programu czyli jeśli znajdujesz się w katalogu /home/kowalski i chcesz uruchomić program "prog" to możesz wpisać

Kod: Zaznacz cały

/home/kowalski/prog
lub

Kod: Zaznacz cały

./prog
. jeżeli katalog /home/kowalski był by dodany do zmiennej PATH to wystarczyło by zwykłe

Kod: Zaznacz cały

prog

Odp: Hello world w C++ nie wyświetla się

: 20 lis 2008, 08:34
autor: mikolajs
Czyli bieżący katalog nie jest dodany do zmiennej PATH, tak jak jest to zrobione standardowo w Windows.

Odp: Hello world w C++ nie wyświetla się

: 20 lis 2008, 08:40
autor: dawidgarus
chmod a+r plik
a od kiedy 'r' oznaczy wykonywanie?

Odp: Hello world w C++ nie wyświetla się

: 20 lis 2008, 14:15
autor: vtr
mikolajs pisze:Czyli bieżący katalog nie jest dodany do zmiennej PATH, tak jak jest to zrobione standardowo w Windows.
nie jest ale jeżeli chcesz żeby był to wystarczy dodać do zmiennej "./" i już będzie

Odp: Hello world w C++ nie wyświetla się

: 20 lis 2008, 18:25
autor: lyrix
dawidgarus pisze:a od kiedy 'r' oznaczy wykonywanie?
oczywiście a+x miałem na myśli, myśląc co innego napisałem co innego ;)

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 07:27
autor: grymek3
#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
cout << "Hello World!" << endl;
getchar();
return 0;
}
zobacz ten kod, jak nie działa albo nie chce się skompilować to daj zamiast getchar()
char i;
cin>>i;

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 15:40
autor: lyrix
Bash wyświetla mi komunikat:
undefined reference to `main'
polecenie getchar() kompilator widocznie akceptuje.

Mam jeszcze pytanie odnośnie plików nagłówkowych. W Symfonii C++ w przykładach używany jest plik conio.h. Mam pytanie, czy jest to jakiś standardowy plik C/C++? W libstdc++ go nie ma, a czy jest jeszcze jakaś powszechnie używana i może bardzieju rozbudowana biblioteka dla C++ niż libstdc++ (The standard C++ library)? Mam też pytanie, czy np. pakiety Eclipse czy NetBeans zawierają jakieś dodatkowe biblioteki?

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 15:43
autor: Szmitas

Kod: Zaznacz cały

#include<iostream>

using namespace std;

int main()
{
cout<<"Hello world";
}
Użyj tego kodu. Getchar() jest niepotrzebny, bo terminal sam się nie zamknie...

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 21:45
autor: vtr
lyrix pisze:
Mam jeszcze pytanie odnośnie plików nagłówkowych. W Symfonii C++ w przykładach używany jest plik conio.h. Mam pytanie, czy jest to jakiś standardowy plik C/C++?
pliku tego pod linuksem nie ma ale jeżeli z niego korzystasz to spokojnie znajdziesz zamienniki funkcji itp, odsyłam do google i tego forum
lyrix pisze: a czy jest jeszcze jakaś powszechnie używana i może bardzieju rozbudowana biblioteka dla C++ niż libstdc++ (The standard C++ library)?
a o jaką konkretnie bibliotekę Ci chodzi, do czego ona ma być?(swoją drogą wnioskuję że jesteś początkującym programistą więc standardowa biblioteka na początek w zupełności wystarczy)

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 21:58
autor: lyrix
a o jaką konkretnie bibliotekę Ci chodzi, do czego ona ma być?(swoją drogą wnioskuję że jesteś początkującym programistą więc standardowa biblioteka na początek w zupełności wystarczy)
Chodziło mi o jakąś inną popularną bibliotekę standardową (do typowych algorytmów "konkursowych" tzn. zebym przy próbie pisania jakiegoś programu na Potyczki Algorytmiczne nie odczuł braku jakichś funkcji itp.), może bardziej rozbudowaną. W sumie to zaczynam swoją przygodę z C++, a więc gdy będę potrzebował więcej to chyba łatwo znajdę :)

Odp: Hello world w C++ nie wyświetla się

: 21 lis 2008, 22:49
autor: vtr
jeżeli chodzi o algorytmy to jeszcze trochę drogi przed tobą, ale jeśli bardzo chcesz już zacząć to zainteresuj się STL-em z biblioteki standardowej(który tak naprawdę zrozumiesz dopiero po porządnej lekturze języka) poza tym wydaje mi się że w tego typu konkursach nie można korzystać z gotowych algorytmów tylko trzeba je napisać samemu ale nie jestem tego pewien

Odp: Hello world w C++ nie wyświetla się

: 22 lis 2008, 09:02
autor: Althorion
W większości mi znanych można korzystać z STLa i biblioteki matematycznej.

Z tym, że zwykle warto napisać algorytm samemu, pod konkretne zastosowanie. Będzie działać szybciej niż uniwersalny bibliotekowy.

Odp: Hello world w C++ nie wyświetla się

: 22 lis 2008, 20:18
autor: mikolajs
Chodziło mi o jakąś inną popularną bibliotekę standardową (do typowych algorytmów "konkursowych" tzn. zebym przy próbie pisania jakiegoś programu na Potyczki Algorytmiczne nie odczuł braku jakichś funkcji itp.), może bardziej rozbudowaną. W sumie to zaczynam swoją przygodę z C++, a więc gdy będę potrzebował więcej to chyba łatwo znajdę
O ile mi wiadomo raczej kompilując na gcc program w c++ nie można nie używać libstdc++, co najwyżej można użyć innej wersji. Ale można oczywiście używać wszelkich innych bibliotek dodatkowo. Ale jak już napisano nie o to chodzi w konkursach aby korzystać z algorytmów tylko żeby je samemu pisać :)
Powodzenia!