 |
www.etipg.fora.pl Forum studiów niestacjonarnych Politechniki Gdańskiej na ETI
|
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
|
Wysł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 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
|
Wysł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
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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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 pisane bez ".h"
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
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
|
Wysłany: Wto 18:28, 05 Paź 2010 Temat postu: |
|
|
sorry, mój błąd 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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
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
|
Wysłany: Wto 18:58, 05 Paź 2010 Temat postu: |
|
|
z tą różnicą że pod windą nie trzeba nic więcej wciskać
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
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
|
Wysł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 |
|
 |
|
|
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
|