Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C i C++ Headeri ???

[es] :: C/C++ programiranje :: C i C++ Headeri ???

[ Pregleda: 5348 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ivan_tnt
Ivan Antolic
Iz Zagreba

Član broj: 3121
Poruke: 15
*.net.hinet.hr

Sajt: www.falcon-net.com


Profil

icon C i C++ Headeri ???21.04.2002. u 19:32 - pre 267 meseci
Molim vas objasnite mi kakva je razlika u headerima izmedu windowsa i linuxa. Puno puta sam napisao program koji mi radio pod windowsima, a za linux, nije ga uspio kompajlati.

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <string.h>

Ovo sve iznad pod Linuxom ne radi, a gcc za ovo baca gresku.

Cime ove headere moram zamjeniti, da normalno mogu raditi pod Linuxom i da nemoram seliti u windows platformu kako bi programirao ???

Cekam odgovor, Ivan
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: C i C++ Headeri ???21.04.2002. u 20:11 - pre 267 meseci
Ivane, pre svega da ti poželim dobrodošlicu na ES s obzirom da vidim da ti je ovo prvi tekst ovde...

Elem header fajlovi koje si uključio u taj svoj program ne postoje na linux-u nažalost. Tj. postoje svi drugi osim jednog: conio.h .

Predlažem ti da vidiš u svom programu koju funkciju iz conio.h koristiš i ako nije neka "specijalna" lako žeš naći adekvatnu funkciju negde među Linux hederima. Ako i dalje imadneš problema daj kod ovamo ja ću rado da ti pomognem da ga napravimo cross-platform sa par #ifdef-ova :)))

Pozdrav

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

ivan_tnt
Ivan Antolic
Iz Zagreba

Član broj: 3121
Poruke: 15
*.net.hinet.hr

Sajt: www.falcon-net.com


Profil

icon Re: C i C++ Headeri ???21.04.2002. u 21:58 - pre 267 meseci
Ipak sam uspio nesto

#ifdef HAVE_CONFIG_H
// cemu sluzi ovo iznad ???
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>
void clrscr(void)
{
clrscr();
// nece mi obrisati ekran
}
void mnozenje(int a, int b) {
printf("\n\nUmnozak brojeva %d i %d je :%d",a,b,a*b) ;
}
void djeljenje(int a, int b) {
printf("\n\nKvocjent brojeva %d i %d je :%d",a,b,a/b) ;
}
void zbrajanje(int a, int b) {
printf("\n\nZbroj brojeva %d i %d je :%d",a,b,a+b) ;
}
void oduzimanje(int a, int b) {
printf("\n\nRazlika brojeva %d i %d je :%d",a,b,a-b);
}
void main(){
int a,b;
clrscr;
printf("\n\r-----------------------------------");
printf("\n\r CETIRI OSNOVNE RACUNSKE OPERACIJE ");
printf("\n\r-----------------------------------");
printf("\nUpisi jedan broj:");scanf("%d",&a);
printf("\nUpisi drugi broj:");scanf("%d",&b);
printf("\nZbroj brojeva %d i %d je :%d\n\r",a,b,a+b);
mnozenje(a,b);
djeljenje(a,b);
zbrajanje(a,b);
oduzimanje(a,b);
return EXIT_SUCCESS;
// zasto umjesto return EXIT_SUCCESS ne moze pisati getch();
}

Ovaj program koji je napisan gore, napravio sam ga u Kdevelop-u. Kompajlirao sam ga i bacio u /bin direktorij i mogu ga pojetati iz komandne linije. Header sam "Ukrao" od nekog primjera iz Kdevelop-a. Neke stvari mi nisu bas bile jasne, pa sam ih ostavio u komentarima.

Mogu li kopirati conio.h (iz Turbo C-a) u direktorij /usr/include/ s tim da bi radio ?

Postoji li program slican Turbo C-u koji radi pod Linuxom ?
Kako mogu C i C++ kompajlirati iz Emacsa?

Ja sam pocetnik i idem u skolu za programiranje, mozda necu shvatiti neke strucnije izraze. Na zalost, radit cemo Visual Basic i Visual C za Windowse. Hocu li moci to znanje primjeniti na Linuxu, jer Windowsi mi nisu previse interesantni.

Ivan

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-1.dialup.nethere.net



+6 Profil

icon Re: C i C++ Headeri ???21.04.2002. u 23:03 - pre 267 meseci
Gledaj da naučiš programske tehnike, strukture podataka i jezik, i to ćeš i te kako moći da primeniš na svim operativnim sistemima. I gledaj da prvo dobro savladaš standardni C++ (ili C, šta te već bude interesovalo), dakle bez onog clrscr, pa tek onda pređi na OS-specifične stvari.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: C i C++ Headeri ???22.04.2002. u 00:26 - pre 267 meseci
Potrudiću se da prvo odgovorim na pitanja (mada sam na slična pitanja odgovarao na news.linuks.org-u - linuks.prg.c konferencija)...

HAVE_CONFIG_H je najprostija definicija (oprostite izraz, ja to tako zovem :) i služi da se ispita da li treba uključiti config.h heder ili ne. config.h produkuje (uglavnom) GNU Autoconf. Autoconf, Automake i GNU M4 izlaze iz okvira ovog teksta i o njima se knjige pišu tako da ... nema se vremena za objašnjavanje ovih stvari. Ukratko, kad startuješ ./configure skript on između ostalog kreira i config.h (nekada ne kreira, zavisi od configura.in skripta, ali ZABORAVI to :). Ovaj pomenuti ./configure skript takođe u Makefile doda i -DHAVE_CONFIG_H u opcije za kompajler (CFLAGS ili CXXFLAGS), što znači da će u tom slučaju (posmatraj svoj kod) da se UKLJUČI config.h heder u kome su razne druge definicije...

clrscr() će samo da ti napravi problem prilikom kompajliranja na Linux-u, jer ta funkcija ne postoji. Ono što možeš da uradiš je da sa

Code:

// ovo ide na vrh programa, medju headere
#ifdef WIN32
#  include <conio.h>
#endif

i
Code:

// ovo je modifikovana clrscr_ iz tvog koda
void clrscr_(void)
{
#ifdef WIN32
clrscr();
#else
int iRez = system("clear");
#endif
// obrisace ekiran :)



... napraviš neko zaobilazno rešenje...

Što se tiče getch() ... Malo sam se smejao dok sam čitao tvoj tekst jer to je TIPIČAN problem sa Windows C/C++ programerima... Naime u Linux-u i UNIX-u postoji getchar(), getch() je zapravo (nisam sto posto siguran ali pretpostavljam) "pozajmljena" getchar() funkcija... Dakle, koristi getchar() na Linux-u, a getch() na Windows-u (iskoristi prethodni paragraf i kod koji sam ti dao da bi kompajleru tokom kompajliranja dao na znanje šta da radi na kojoj platformi sa #ifdef direktivom)...

Ti si odličan primer kako razvojna okruženja loše utiču na programere početnike... Jeste sve to lepo, ali to programera nikad ne nauči "zašto je ovo ovde, a ono onde"... :(

Na pitanje "zasto umjesto return EXIT_SUCCESS ne moze pisati getch()" nemam komentara... EXIT_SUCCESS je definicija iz stdlib.h hedera i sa time zapravo sistemu govoriš da je je program završio sa uspehom svoj posao (najprostije rečeno :) ! Dok getch() daje kod karaktera koji si pritisnuo... Ako ti ne vidiš razliku između to dvoje onda bi zaista trebalo da još jednom razmisliš da li je posao programera zaista za tebe... :(

Postoji program koji je sličan TurboC-u na Linux-u, čak više njih! Moj omiljeni je MOTOR (na kome pomalo i sam radim, URL: http://www.linuks.org/search/search.php?text=motor). Drugi koji je dosta nestabilan jer je mnooogo obimniji je RHIDE ( http://www.rhide.com/ ).

Ako želiš GUI stvar koja podseća na Borland C++ Buillder, onda je VDKBuilder prava stvar za tebe (i njega možeš naći na našem www.linuks.org-u , samo upotrebi pretraživač).

Tebi treba fundamentalno znanje C i C++-a, ako ti to škola obezbedi onda je super! Nebitno je da li se koristi VisualC++! Međutim, VisualC++ i sva slična okruženja (ovo sam tooooliko puta pominjao) prave lenje programere, ubijaju kreativnost i prave programere koji su mnogo stereotipni. Neko će reći da nije tačno ovo što govorim, ali ja i dalje stojim iza svojih reči, jer je ovo što kažem bazirano na iskustvu. - Naime lično sam imao prilike da upoznam desetine VisualC++ i Borland C++ programera koji nikada u životu nisu čuli, a kamoli pokrenuli/probali nmake (VC) ili (t)make (BC) ... ruku. Ali kako vreme ne postoj
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

ivan_tnt
Ivan Antolic
Iz Zagreba

Član broj: 3121
Poruke: 15
*.net.hinet.hr

Sajt: www.falcon-net.com


Profil

icon Re: C i C++ Headeri ???23.04.2002. u 15:41 - pre 267 meseci
VDK nisam uspio pronaci, motor mi odlicno radi i napravio sam nekoliko sitnih programa, koje mogu pokretati iz teminala. No imam sada nekoliko novih problema.


1. Nece mi vaditi kvadratni korjen (sqrt), iako sam koristio <math.h>?
2. Kako mogu dobiti tekst u boji?
3. Postoji site ili ftp, na kojemu mogu skinuti dokumentaciju la Linux programiranje ?

Hvala, Ivan
 
Odgovor na temu

Jovan Marjanovic
HP GmbH
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: C i C++ Headeri ???23.04.2002. u 16:22 - pre 267 meseci
joj sto moram da se mesam kad je unix programiranje u pitanju :P

system("clear") je naj gori nacin da se programski obrise terminal

umesto toga -

Code:

#ifdef UNIX /*ili nesto slicno*/
#include <curses.h>
#endif

#include <stdio.h> /*i sve ostalo sto treba*/

int main()
{
#ifdef UNIX
clear();
#elif WIN32
clrscrn();
#endif

/*... sve ostalo*/
return;
}



za informaciju - man 3 clear
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
 
Odgovor na temu

Dusan Marjanovic
Consultant, SAS
Beograd

Član broj: 59
Poruke: 1290
*.016le.net

Jabber: dusanm@gmail.com
ICQ: 84621598
Sajt: marjanovic.net


+6 Profil

icon Re: C i C++ Headeri ???23.04.2002. u 16:59 - pre 267 meseci
1. nabaci gcc-u -lm parametar
2. koristi curses za boje u terminalu, postoji i varijanta bez koriscenja ncurses ali to nije bas standard way...tako da je bolje da se za pocetak zadrzis na prvom nacinu
3. da...ima takvih sajtova dosta :o)...
VMware VCP/Microsoft MCSE 2003/HP ASE
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: C i C++ Headeri ???23.04.2002. u 17:00 - pre 267 meseci
Citat:
ivan_tnt:

1. Nece mi vaditi kvadratni korjen (sqrt), iako sam koristio <math.h>?



Jesi li linkovao program sa matematičkom bibliotekom (-lm) ?
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: C i C++ Headeri ???23.04.2002. u 17:18 - pre 267 meseci
Citat:
leka:
Što se tiče getch() ... Malo sam se smejao dok sam čitao tvoj tekst jer to je TIPIČAN problem sa Windows C/C++ programerima... Naime u Linux-u i UNIX-u postoji getchar(), getch() je zapravo (nisam sto posto siguran ali pretpostavljam) "pozajmljena" getchar() funkcija...

Leko, ja se unapred izvinjavam ako sam te pogresno razumeo (if so zanemari ovo sto pise), ali da li si hteo da kazes da funkcija iz standardne biblioteke (stdio.h) getchar() postoji samo na UNIX-u?
 
Odgovor na temu

ivan_tnt
Ivan Antolic
Iz Zagreba

Član broj: 3121
Poruke: 15
*.net.hinet.hr

Sajt: www.falcon-net.com


Profil

icon Re: C i C++ Headeri ???23.04.2002. u 21:40 - pre 267 meseci
Citat:
MAdafaKA:
1. nabaci gcc-u -lm parametar
2. koristi curses za boje u terminalu, postoji i varijanta bez koriscenja ncurses ali to nije bas standard way...tako da je bolje da se za pocetak zadrzis na prvom nacinu
3. da...ima takvih sajtova dosta :o)...


Kako ide sintaksa za curses?

curses(x); ili slicno?
 
Odgovor na temu

Dusan Marjanovic
Consultant, SAS
Beograd

Član broj: 59
Poruke: 1290
*.016le.net

Jabber: dusanm@gmail.com
ICQ: 84621598
Sajt: marjanovic.net


+6 Profil

icon Re: C i C++ Headeri ???23.04.2002. u 22:30 - pre 267 meseci
hmm...it`s not that simple :o) ... $man ncurses
VMware VCP/Microsoft MCSE 2003/HP ASE
 
Odgovor na temu

[es] :: C/C++ programiranje :: C i C++ Headeri ???

[ Pregleda: 5348 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.