Forum www.etipg.fora.pl Strona Główna www.etipg.fora.pl
Forum studiów niestacjonarnych Politechniki Gdańskiej na ETI
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

kompilator g++ pod linuxem

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.etipg.fora.pl Strona Główna -> Semestr I / Praktyka programowania
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dariusz
Bywalec



Dołączył: 28 Wrz 2010
Posty: 95
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Gdynia

PostWysłany: Wto 16:27, 05 Paź 2010    Temat postu: kompilator g++ pod linuxem

Odważyłem się spróbować napisać "projekt 1" pod linuxem i od samego początku są same schody. Odradzam wszystkim początkującym podobne próby...

A jeśli jest tu ktoś kto ma pojęcie o g++... to czy istnieje jakaś komenda do wczytania znaku bez naciskania entera? wszystkie scanf'y i getchar'y cały czas domagają się wciśnięcia tego nieszczęsnego entera...


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 17:05, 05 Paź 2010    Temat postu:

#include <stdio.h>
#include <conio.h>

main(){
int ruch;
do{
while(!(ruch=getch()));
if(ruch==77){
}
}while(ruch!=27);
}

zaczerpnięte z internetu, ale wydaje mi się że zrozumiałe Smile

albo prościej(ja tak mam ale nie wiem czy podobnie działa w g++):
(...)
char klawisz;
klawisz=getch();
switch (klawisz)
(...)


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dariusz
Bywalec



Dołączył: 28 Wrz 2010
Posty: 95
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Gdynia

PostWysłany: Wto 18:04, 05 Paź 2010    Temat postu:

Ano właśnie nie, gdyż conio.h jest niestandardową biblioteką windowsową, stąd nie mogę jej ot tak użyć pod linuxem, a tym samym getch() generuje błąd, gdyż nie jest znane.

W internecie też szukałem, ale tam jedyne co radzą to utworzyć samemu tę funkcję (co notabene nie udaje się ze względu na ciąg 5-9 błędów kompilatora, których nie rozumiem).


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 18:18, 05 Paź 2010    Temat postu:

znalazłem coś o getc()... spróbuj tego użyć. tylko dołącz: #include <stdio.h>

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 18:22, 05 Paź 2010    Temat postu:

getc(stdin) <<jakby samo getc() nie działało

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dariusz
Bywalec



Dołączył: 28 Wrz 2010
Posty: 95
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Gdynia

PostWysłany: Wto 18:23, 05 Paź 2010    Temat postu:

kamilsz napisał:
znalazłem coś o getc()... spróbuj tego użyć. tylko dołącz: #include <stdio.h>

Ekchm... dla odmiany to wymaga użycia pliku Very Happy Nawet nie wnikam jak dokładnie to działa, bo angażowanie pliku tekstowego do pobrania znaku to chyba przesada...
[link widoczny dla zalogowanych]

tak swoją drogą, to z tego co do tej pory rozkminiłem biblioteki z końcówką ".h" są windowsowe. STDIO akurat jest też pod linuxa Smile pisane bez ".h" Smile


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 18:28, 05 Paź 2010    Temat postu:

sorry, mój błąd Smile ale wyczytałem że można użyć getc(stdin) (ponoć ze strumienia ciągnie...)

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dariusz
Bywalec



Dołączył: 28 Wrz 2010
Posty: 95
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Gdynia

PostWysłany: Wto 18:31, 05 Paź 2010    Temat postu:

niestety Stary, działa identycznie jak getchar(), czyli czeka na entera...

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 18:54, 05 Paź 2010    Temat postu:

ostatnia możliwość jaką znalazłem:

char a;
a=cin.get();


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dariusz
Bywalec



Dołączył: 28 Wrz 2010
Posty: 95
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Gdynia

PostWysłany: Wto 18:56, 05 Paź 2010    Temat postu:

kamilsz napisał:
ostatnia możliwość jaką znalazłem:

char a;
a=cin.get();

wciąż wymaga entera...

zabawne ile jest możliwości pobrania znaku z użyciem tego magicznego klawisza Razz


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kamilsz
Mistrz Yodyna



Dołączył: 30 Wrz 2010
Posty: 60
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5
Skąd: Pelplin

PostWysłany: Wto 18:58, 05 Paź 2010    Temat postu:

z tą różnicą że pod windą nie trzeba nic więcej wciskać Razz

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mczapiewski
Świeżak



Dołączył: 01 Paź 2010
Posty: 23
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 21:49, 05 Paź 2010    Temat postu:

Co do bibliotek z rozszerzeniem .h to nie do końca jest tak że są to biblioteki windowsowe. Poprostu Borlad C++ 6 jest starym kompilatorem niezgodnym z nowym standardem. Obecnie nie pisze się rozszerzenia .h a większość bibliotek ma nowe nazwy (np. zamiast stdio.h obecnie jest cstdio). Po drugie cin jest obiektem więc nie powinnismy go używać w naszych programach (a w szczególności wywołania cin.get()). Getch() z biblioteki conio.h teoretycznie nie buforuje (tzn. nie czeka na enter), ale jest to stara biblioteka tylko dla Dosa. Może spróbujcie wykożystać Getch() z biblioteki ncurses.h. Podobno działa na linuksie i służy głównie do tworzenia interfejsu wiec moze się przydać nawet bardziej niz tytko do pobierania znaku.

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.etipg.fora.pl Strona Główna -> Semestr I / Praktyka programowania Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin