- Melyik tápegységet vegyem?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Nvidia GPU-k jövője - amit tudni vélünk
- Hővezető paszták
- Milyen belső merevlemezt vegyek?
- Kormányok / autós szimulátorok topikja
- Hogy is néznek ki a gépeink?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen monitort vegyek?
- Azonnali alaplapos kérdések órája
Aktív témák
-
Forest_roby
őstag
#include <stdio.h>
#include <stdlib.h> /* required for randomize() and random() */
#include <time.h>
int main ()
{
int i;
/* initialize random seed: */
srand ( time(NULL) );
/* generate random number: */
i = rand() % 10 + 1;
printf("rand: %d", i);
}ez megteszi!
( en is rosszul emlekeztem! )( mod: a random seed nelkul mindig ugyanazt a random numbert adja! )
-
Steve-S
tag
válasz
Forest_roby #198 üzenetére
azt én is vágom
, de nekem egész számok kellenek.
Szóval te azt mondod ha én ezt: rand(); beírom akkor 0 és 1 között generál? -
Steve-S
tag
válasz
Forest_roby #196 üzenetére
ehh, ez most vagy valami nagy hülyeség vagy én vagyok ennyire láma: 0 és 1 között milyen egész számok vannak?
-
Forest_roby
őstag
hat a gyors valasz az az, hogy ha jol emlekszem, akkor 0 es 1 kozotti szamokat general egy ilyen fuggveny, ezt mar csak be kell szorozni 10 el es kesz.
a lassabb valasz az az, hogy utanna nezek googel-el, de ezt most radhagyom, szenvedj egy kicsit!
ha nem sikerul, akkor segitek!tip: a valtozo v. tomb nem INT tipusu legyen!!
-
Steve-S
tag
válasz
Forest_roby #194 üzenetére
OK, de én azt nem értem hogy hogy adom meg neki azt hogy 0-10-ig generáljon?
Nem vagyok valami pro c-ből, egy kicsit szájbarágósabban kellene!
Köszi! -
Steve-S
tag
Hi mindenkinek!
Egy kis esgítség kellene. Egy olyan progit kéne csinálnom C alatt hogy 100 db véletlen számot kell generálni 0 és 10 között. Azt tudom hogy rand fügvénnyel kell csinálni csak azt nem hogy hogy krll mergadni neki ezeket a paramétereket. Esetleg egy 100 elemű tömböt kellene létrehozni és abból? Bazinagy vastag C könyvbe sem találtam semmi ilyesmit erről! Ha ez megvan utána statisztikát kell csinálni róla hogy miből hány darab van. Ezt százalékos formában kiírni, ez könnyű lenne mivel pont 100 db kell.
Ha valaki tudna segíteni megköszöném! -
czappa
aktív tag
Köszi a válasz!
Azt hiszem értem, de hogy biztos legyek benne összefoglalom:
Az stdlib és a többi a C része (std asszem a standard rövidítése), ha van fönn C fordítom akkor ezek is, ellenben pl. a math függvény gyűjteménynek nem is kell fenn lennie, ezért kell külön jelezzem a fordítónak, hogy keresse meg és linkelje. Mivel ez nem része a C-nek, külön kell linkelni.
Valami ilyesmi ugye? -
doc
nagyúr
a C csak egy nyelv, ami szinte semmilyen függvényt nem tartalmaz
a math.h-ban levő matematikai függvényeket pl. mások már megírták, lefordították, neked azt csak használnod kell
a használat a következőképpen történik:
az #include-dal lényegében beillesztesz egy file-t a forrásba, amiben le van írva, hogy az egyes, pl. matekos függvényeknek mi a neve, milyen paramétereket várnak. azonban ez önmagában kevés ahhoz hogy az adott függvényt használd, hiszen maga a függvény is kell. ez egy külön, ún. object file-ban van
a linker azt csinálja, hogy ezeket az object file-okat "összelinkeli" a programoddal, vagyis megmondja neki, hogy a math.h-ban felsorolt függvények megvalósítása hol található. ezt vagy úgy csinálja, hogy egyszerűen elraktározza hogy melyik file-ban kell majd keresni (dinamikus linkelés), vagy belerakja magába a végrehajtható programba (statikus)az első kettőnél azért nincs rá szükség, mert azok nagyon alapvető könyvtárak, a fordító tudja hogy hol vannak, így nem kell vele külön foglalkozni
remélem érthető valamennyire amit írtam
-
czappa
aktív tag
Van egy kérdés, ami régóta foglalkoztat, de nem találtam meg a választ,
pl. ezeket include-oljuk:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>Az első kettővel nincs semmi "gond", viszont at utolsó header file-hoz, hogy használhassam, a linkernek meg kell mondjam, hogy linkelje a math.h-t (már ha jól értem...), így: gcc -lm progi.c
Megtudná nekem valaki mondani, hogy miért van erre szükség? Illetve, hogy az első kettőnél miért nincs?
Előre is köszi. -
pötyi12
csendes tag
Segitsen valaki!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
pötyi12
csendes tag
Hali! nekem olyan problémám van h nem tudom hogyan kel fájlból beolvasni!
Sajnos így kéri a biro! Másrészt az a baj h több sört kéne beolvasni, és ez nem igazán sikerül!
Pl.
5
M A
P F
T 0
Z 7
T K
na valami iylesmit kéne beolvasni
csak nem tudom hogy.
Sajnos én még nagyon kezdő vagyok!
-
C in LINUX
csendes tag
Sziasztok! Segítségeteket szeretném kérni!Most kezdtem el a C-t tanulni suliban és kaptunk kötelező progikat amit meg kéne csinálnom,de mivel még a tananyaggal nem tartunk ott,így lehetetlen megcsinálnom! Próbálkoztam csinálgattam de a max pont közelébe se sikerült jutnom! Ha vki lenne olyan kedves és megcsinálná nekem ezeket az elvileg kezdő feladatokat és elküldené nekem emailben a hétvége folyamán nagyon hálás lennék! Legalább a gondolatmenetét így majd látnám! Nagyon jó és nagyon FONTOS is lenne és gondolom vannak olyan hozzáértők ezen a fórumon akiknek ez max 30 percet de lehet még annyit se igényelne! Remélem lesz aki megérti és segít elindulni!
A feladatokat megtudjátok ezeken a linkeken nyitni:
1. [link]
2. [link]
3. [link]
4. [link]
5. [link]
6. [link]
7. [link]
8. [link]
9. [link]
10. [link]E-mail címem: tanaaar@freemail.hu
Előre is köszi annak aki segít!!!
-
-
lakisoft
veterán
Figyu C++ programozáshoz milyen csomagok szükségesek ... csak az alap rendszerre gondolok ... Ubuntu 7.04 a platform ...
Melyik disztrib alkalmas a jegjobban progrmozás tanulására? - egyáltalán van e különbség ... :-D
-
Bgs
senior tag
Most vagy nyar van vagy tul nehezet kerdeztem
Mindegy, lenne egy konkretabb kerdesem. A fent emlitett forkolos megoldassal kiserletezgetek es egy fura jelenseget talaltam.
A child a kovetkezot csinalja:
signal(SIGALRM, alarm_handler);
child_id = getpid();
alarm(3);
childioret=childfunc(argv[1]);
printf(''child=%d childioret=%d\n'', child_id, childioret); // debug...
_exit(childioret);
Ahol a childfunc valojaban csak egy egyszeru chdir parancs. Minden kivaloan mukodik, amig a chdir sikeres vagy egyszeru hiba van (pl. nem letezo dir). Viszont, ha egy halott nfs share-re kuldom ra, akkor az alarm sem fut le a fenti 3 mp utan...
Mi lehet a gond? -
Bgs
senior tag
Tapasztalat, hogy hogyan lehet a legjobban megoldani, hogy egy file muvelet timeout-tal rendelkezzen?
Peldaul NFS share-ben akar a vegtelensegig is allhat a process, de jo lenne hatart szabni....
Jo kis fork()-olos kacifantos megoldassal mar jatszottam, de valami elegansabb es kevesbe rendszer igenyes modszert szeretnek -
doc
nagyúr
nincs mit
a 'bad interpreter' elég gyakran ezt jelenti; mivel a scriptek első sorában a futtatásához használatos értelmező van leírva, és a dupla sorvége miatt a \r karaktert az értelmező nevének a részének veszi (na ez sem magyarul volt) így nyilván nem találja pl. a '/bin/sh\r'-t
amúgy ami még itt árulkodó volt, hogy ott is volt a '^M', a DOS-féle dupla sortörések így szoktak Linux alatt megjelenni (pl. vim-ben, vagy mceditben is) -
doc
nagyúr
dosos sorvégek vannak benne a Unixos helyett, ezt át kell alakítanod
valószínűleg van a disztródban pl. egy dos2unix parancs
ezzel konvertáld át a shell scripteket
egyébként a stable ág elég régi, de az svn-t helyenként elég macerás lefordítani (volt amit nem is sikerült ilyen-olyan bugok miatt)
szóval ismerkedni jó az rc2 -
czappa
aktív tag
Elkezdtem (volna) telepíteni:
futtatási jog megadása, majd ./bootstrap
Erre ezt írja:
bash: ./bootstrap: /bin/sh^M: bad interpreter: Nincs ilyen fájl vagy könyvtár
Debianos binary meg - már - nincs fenn ezen az oldalon:
[link]
Van ötleted, hogyan telepítsem?
ui.: nem tudom miért rossz a link, idemásolom:
http://wiki.codeblocks.org/index.php?title=Compiled_packages_of_Code::Blocks
[Szerkesztve] -
czappa
aktív tag
Azok segítségét szeretném kérni, akik Anjuta IDE-t haszználnak.
Van 3 fileom:
1)main.c
#include <stdio.h>
#include ''masodik.h''
int main()
{
int c;
c = atlag(2,5);
printf(''%d'',c);
return (0);
}
2)masodik_num.c
#include ''masodik.h''
int atlag(int a, int b){
return ((a + b) / 2 );
}
3)masodik.h
int atlag(int a, int b);
Terminálban tökéletesen le tudom fordítani, gcc -c main.c ill. gcc -c masodik_num.c, majd gcc main.o masodik_num.o parancsokkal; majd a bináris fájlt tudom futattni.
A gond az, hogy Anjuta IDE-ben nem megy. Eleinte mindenféle hibákat írt ki, de guglizással s aptitude-dal való letöltögetéssel előrébb léptem, de még mindig nem jó.
Pontosan ugyan azt írja ki, mintha a fönti terminálos példánál rögtön gcc main.c-vel szerettem volna fordítani:
main.o: In function `main':
/home/czappa/Projects/masodik/src/main.c:10: undefined reference to `atlag'
collect2: ld returned 1 exit status
Gondolom a linkeléssel lehet baj, és biztos be kéne állítanom vmit az anjutában de nem tudom mit.
Nehezíti a helyzetem, hogy bár több programozási nyelvet ismerek (valamennyire...) a c nincs köztük, és linuxszal sem foglalkozom túl rég óta.
A segítségeket előre is köszi.
[Szerkesztve] -
dabadab
titán
Azert lattal ilyet, mert altalaban maga a program meg az src/ konyvtarban van, nem a gyokerben. Ha ragaszkodsz a jelenlegi kiosztashoz, akkor rakd be a rekurziv reszt vmi phony target ala (library:, v vmi hasonlo), es az $(EXE): utan add meg elofeltetelnek, az all:-nal meg egyszeruen csak az $(EXE)-t add meg elofeltetelnek. Szoval vmi ilyesmi:
all: exe
exe: library
__gcc .....
library:
__(rekurzios resz)
.PHONY: library
[Szerkesztve] -
Kodr
csendes tag
Na az osszelinkeles dologra rajottem! elirtam a fuggveny nevet a .c-ben
Viszont a rekurziv dolog meg mindig kerdeses. Ilyeneket ajanlanak doksikban:
all:
for dir in $(SUBS); do \
(cd $$dir; $(MAKE) all); \
done
Ez meg is csinalja, hogy vegig megy az alkonyvtarokon, viszon a fokonyvtarban levo dolgokat kihagyja. Ha az all: utan beteszem a $(EXE)-t, akkor viszont, mivel elofeltetel, azzal kezdi, amihez kellene az osszes alkonyvtar elobb. -
Kodr
csendes tag
Hello! Probalgatok irogatni Linux alatt. Szeretnek egy strukturalt dolgot csinalni, de make teruleten eleg kezdo vagyok, ti talan tudtok segiteni.
Az alabbi pelda szerint szeretnem rendezni a dolgokat (minden eleres relativ a forraskod konyvtarahoz viszonyitva):
Makefile
main.c
config.h
/lib/Makefile
/lib/myfuncs.c
/lib/myfuncs.h
/db/Makefile
/db/mydb.c
/db/mydb.h
Szoban: vannak alkonyvtarak, azokban egy make all leforditja az osszes .o fajlt. A fokonyvtarban a make eloszor vegig fut az osszes alkonyvtaron mindenhol make all-t csinalva, majd csinal egyet a fokonyvtarban es osszelinkeli az osszes fajlt. Ket dolgot nem tudom hogyan kell ebbol megcsinalni. Hogyan kell rekurzivan tovabbkuldeni lefele? Hogyan kell osszelinkelni az osszes .o-t.
Az utobbira probaltam a kovetkezot:
objs=test.o libs/*.o
$(CC) -g -o test $(objs) $(CLIBS) $(LDFLAGS)
De nem talalja a libs-ben levo objekt fuggvenyeit.
Remelem valaki tud ebben segiteni -
Lortech
addikt
válasz
norbiphu #162 üzenetére
Mit tegyen bele? Betette a számot, amit kiiratáskor nyilván aciiben fogsz látni. Ettől még az a szám van benne, amit beleraktál.
Ha azt akarod, hogy a számot, mint karaktereket tegye bele egyenként, akkor át kell alakítani a számjegyeket karakterekké, és úgy berakni i-től, előtte az i index után lévőket léptetni, ha nem akarod hogy elvesszenek, mivel egy int általában nem egy karaktert foglal le. De egyszerűbb ha külön változóba fűzöd össze őket.
Egy kis segítség átalakításra:
#include <string>
#include <sstream>
...
int i = 513;
string s;
stringstream ss;
ss << i;
s = ss.str();
...
szerk: na hiába írkáltam., ha csak egy számjegy van, arra is jó, bár kicsit ágyúval verébre, és így nem kell tökölni az összefűzéssel sem, csak berakod string[ i ]-re s[ 0 ]-t.
[Szerkesztve] -
norbiphu
őstag
egy string i.-helyére, hogy tudok berakni egy integert?
csak, mert string[ i ]=egesz - re az egesz-edik ascii karakter megy be
[Szerkesztve] -
Sianis
addikt
1. Régen láttalak a nyíregyi topicokban!
2. A Makefile arra való, hogy megadhatod neki, hogy mit - mivé fordítson a make parancs segítségével. Legfőképpen azért jó, mert egy nagyobb forráskódnál sok fájl van és unalmas lenne mindent lefordítgatni. Tehát úgymond autómatizálásra van.
[link]
Itt van egy egészen jó oktató oldal, egy jó példával.
Sianis -
Drizzt
nagyúr
Np, megesik.
Most viszont olyan kérdésem lenne, hogy valaki van-e itt, aki a hálózatos programozás avatott mestere?Szóval elküldöm ezt a login üzenetet, s valamiért amikor elküldöm, akkor többször is megérkezik(2-szer), csak másodjára a Login le betűje helyett egy y van egy aposztróffal a tetején, nem tudom miért lehet...
-
Drizzt
nagyúr
A kérdésem most az lenne, hogyha van egy olyan stringem, aminek az eleje login:, akkor abból hogy hagyahatom el a login részt, tehát szeretném, hogy a sztringemben a login:xy helyett xy legyen.
-
Drizzt
nagyúr
Erre kódrészletre beolvasáskor futás közben miért kaphatok segmentation faultot?
while(1){
fflush(stdin);
printf(''\nÍrj be egy üzenetet:'');
FD_ZERO(&read_fds); // a beolvasando halmazt uritjuk
FD_SET(0,&read_fds); // Majd feltoltjuk a sockettel, s az sdinnel
FD_SET(source_descrip,&read_fds);
select(FD_SETSIZE,&read_fds,NULL,NULL,NULL); //Van-e valamilyen bejövő üzenet?
if(FD_ISSET(0,&read_fds)){ //Ha stdinről van...
//temp2=fdopen(0,''r'');
char message2[80];
//fgets(message2,80,temp2);
fflush(stdin);
scanf(''%s'',message2);
//strcat(message2,''\n'');
fflush(stdin);
printf(''\n%s'',message2);
A // részek egy másik megvalósítási kísérletből maradtak, de azok is
segmentation faultokkal dobáltak. :S
Elvileg már készen lennék a serverrel is, meg a klienssel is, de van itt ez a hiba, meg lehet még bőven más is. -
Drizzt
nagyúr
Namégegy
int main(int argc, char *argv[]){
CLIENTS *clients; // Az összes kliens egy dinamikus tömbben lesz eltárolva!
int clientslist; // a clients.dat fájlleírója.
if((clientslist=open(''./clients.dat'',O_CREAT | O_APPEND,1644))<0){
exit(1); //Ha nincs az adott fájl, létrehozzuk
printf(''Fájlkezelési hiba\n'');
}
FILE *clientslistptr=fdopen(clientslist,''a'');
fputs(''GERI\n'',clientslistptr);
fclose(clientslistptr);
return 1;
}
Ez nekem miért csak annyit tesz, hogyha nincsen a fájl, akkor létrehozza, de az istennek sem írja hozzá a Geri szöveget. -
Drizzt
nagyúr
Új kérdésem lenne: unixon hiába includeolok be mindent, ami szükséges, kiírja egy csomó mindenre, hogy undefined symbol. ha a gcc-t -lsocket, meg -Wall-la indítom, akkor a socketes dolgok belinkelődnek. Ha az arpa/inet.h-t kell includeolnom, akkor milyen kapcsolót használjak a gcc-hez?
-
sghc_toma
senior tag
-
Drizzt
nagyúr
válasz
sghc_toma #141 üzenetére
Kösz srácok. Engem most konkrétan nem annyira érdekel a téma, de egy hirdetőtáblás cuccot meg kell írnom csüt. délig, ledokumentálni, s leadni.
Amit te linkeltél, azt már magyarul végigolvastam, de ez pont egy kérdőjel maradt bennem. Meg tudom azt csinálni, hogy egy dinamikus tömbben eltárolok egy névből, s fájlleírókból álló struktúrát, ahol ha kilép egy kliens, akkor a neve.cli fájlra mutat a fájleíró, egyébként pedig a nyitott socketjére? Meg lehet-e socketből soronként olvasni, vagy csak az említett linken is leírt olvasási hossz megadása+bufferből olvasás a lehetőség? S persze ssh-val kell egy külső szerveren fejleszteni, hogy a dolog még mókásabb legyen... -
sghc_toma
senior tag
válasz
Forest_roby #140 üzenetére
én is ajánlok egyet, részletes, érthető, nagyon jó.. ja, és ha ez szempont, akkor van magyarul is: Beej’s Guide to Network Programming Using Internet Sockets. [link]
-
Drizzt
nagyúr
Hálózati programozásnál érdekelne egy-két dolog, először is. Socketről akkor elvileg lehet fgets, vagy hasonló módszerrel is beolvasni? Ilyenkor newline jelzésig olvas róla? Majd lesznek még kérdésem.
-
gerrob
csendes tag
válasz
ibizefrenki #136 üzenetére
Második kapcsos zárójel után üssél még egy entert és mentsd el a forrást! Így már le tudod fordítani.
-
ibizefrenki
csendes tag
Helló!
Feltettem a SUSE Linux-ot és azon gyakorlom a progit.De állandóan hibát ír ki a fordításnál.Pedig adott példákat csinálok...
Ezt írja ki: no newline at end of file
és ezt akartam lefordítani :
#include <stdio.h>
main ()
{
printf ('' Szöveg ! \n '');
}
Próbáltam az strcmp függvénnyel megvalósított példát is lefordítani,de a azt írta,hogy function is dangerous and sholud not be used.Értem mi ez,csak nem tom miért...Mert a suliban DEbian van és ott gond nélkül ment.Ha beírjátok a google-be hogy strcmp,akkor az első hivatkozásban lévő függvény az...(a kedven gyümölcsös)
a válaszokat köszönöm!!!!! -
seaky77
tag
válasz
ibizefrenki #128 üzenetére
int strcmp(char *s1, char *s2)
{
while (*s1 == *s2++)
if (*s1++=='\0')
return(0);
return(*s1 - *--s2);
}
üdv,
seaky -
FuReady
csendes tag
Köszönöm szépen mindenkinek a segítséget!!!
-
cucka
addikt
válasz
Forest_roby #130 üzenetére
google code search-el pl. találtam egy félelmetesen elegáns megoldást, 3 sorban
-
Forest_roby
őstag
válasz
ibizefrenki #128 üzenetére
jól tudod! de a whiskey-t szeretjük!!
ui.: két adott char összehasonlitását kell megcsinálnod? -egyébként nem értem a problémátokat, ezeket a fv.eket meg lehet keresni, ha nem is tudom megírni lemásolni csak le tudom...
-
cucka
addikt
válasz
ibizefrenki #128 üzenetére
szerintem ha bemásolnád, hogy bajlódás közben meddig jutottál, akkor szívesen segítenénk.
egyébként az egész függvény működése le volt írva nemrég itt, már csak át kéne írni c-re.
(más házi feladatát nem szoktam megcsinálni, mert az enyémet se csinálja meg senki ingyen, cserébe segítek, ha elakadsz és tudom a probléma megoldását)
[Szerkesztve] -
ibizefrenki
csendes tag
Halli!!
Még mindig az STRCMP függvénnyel bajlódok...Suliba kérik,de az fenéért sem tudom megcsinálniMinden tiszteletem a programozóké!!!!!
Tudna valaki segíteni?Ez a feladat:
Nem kerunk GDF Turbo Pascalban irt C programot!
1. nincs getchar
2. nem a hasznalatot szeretnem latni, hanem a megvalositast!
Az ¨Írja meg a strcmp() függvényt¨ azt jelenti ami le van irva!
Köszönöm mindenkinek!!És virtuálisan fizetek 1 rekesz sört,mert úgy tudom a programozók nagy sörösök -
Forest_roby
őstag
válasz
Forest_roby #126 üzenetére
ez így talán kicsit pontosabb:
#include <stdio.h>
char* masol( char *ide, char *ezt ){
int n;
n=0;
do{
ide[n]=ezt[n];
}while( ezt[n++] != 0 );
return(ezt);
}
main(){
char szoveg[32] = ''easy'';
char masolat[32];
char* vmi;
vmi = masol(masolat, szoveg);
printf(''it is %s\n'', masolat);
printf(''%s\n'', vmi);
} -
cucka
addikt
válasz
Forest_roby #124 üzenetére
majdnem jó.. [link]
1 paraméter hiányzik, illetve a visszatérési érték nem jó. -
Jester01
veterán
válasz
ibizefrenki #118 üzenetére
Ellenorizd azzal, hogy jol mukodik-e
-
FuReady
csendes tag
Sziasztok!!!
Van egy nagy problémám: az strcpy() függvényt kéne megírnom, de nagyon kínai nekem ez az egész.
Annyi még a paraméter, hogy a szükséges libc függvény: printf().
Találtam valami ilyesmit a neten, de nemtom, jó-e, kérlek segítsetek!!
char *strcpy(char d[ ], char s[ ])
{ int i,l;
l = strlen(s);
for (i = 0; i < l; i++) d = s;
return &d[0];
}
Ez lenne a feladat megoldása?? -
cucka
addikt
válasz
ibizefrenki #115 üzenetére
mi ebben a nehéz? pointerek alapszintű ismerete, while ciklus és if kell hozzá.
rá kell állítani 2 pointert a két összehasonlítandó string elejére (p1,p2)
utána ciklus, amelyben a következő 3 vizsgálat van:
- ha *p1<*p2 vagy *p1==0 és *p2==0 akkor return -1 (az első string kissebb mint a második)
- a második string kissebb (fenti eset fordítva, return 1)
- *p1==0 és *p2==0 - egyszerre ért véget a két string, tehát egyformák, return 0
ha egyik sem, akkor tovább lépteted p1-et és p2-t, majd kezdődik újra a ciklus -
ibizefrenki
csendes tag
Halii!!!
Tudna valaki segíteni?Egy STRCMP függvényt kéne megírni...És az alábbi programba beilleszteni.Amatőr vagyok ...sőt...
a program:
/* strcmp example */
#include <stdio.h>
#include <string.h>
int main ()
{
char szKey[] = ''apple'';
char szInput[80];
do {
printf (''Which is my favourite fruit? '');
gets (szInput);
} while (strcmp (szKey,szInput) != 0);
printf (''Correct answer!\n'');
return 0;
}
Hatalmas köszönöm!!!!!!!!!!!!! -
gaben
aktív tag
Sziasztok!
Én is kaptam egy feladatot a suliban,de közelébesem járunk annak,amit meg kellene csinálni....Egyszerűbb dolgokat csinálunk,printf,ciklus ,ilyenek....de olyan feladatokat adnak,hogy írjál böngészőt,stb...
Nekem az a feladat,hogy sgml-t kódoljon html formátummá...
Tudtok ebben segíteni?Hogy kezdjem el,hogy csináljam?? -
_t0Mi_
aktív tag
Sziasztok, visszatértem..
Csináltam 2 programot, de mind a 2 ugyanazt a hibakódot adja vissza, nevezetesen azt, hogy a 4. sorban az ''a'' karakter előtt hiányzik egy '')''. Na most, én nem értem h miért írja, elvileg helyesnek kéne lennie, már csak azért is mert a könyv is így írja! Anjutát használok! Előre is köszi!
#include <stdio.h>
main() {
}
void inverz(tomb a, tomb e, int n)
{
int i,j;
vekt x, y;
for(j=1; j<=n; j++)
{
for (i=1; i<=n; i++)
{
a[n+1]=e[j];
}
yvektor(y, a, n);
xvektor(x,y,a,n);
for (i=1; i<=n; i++)
{
e[j]=x;
}
}
double det(tomb a, int n, int d)
{
c=c*a[k][k];
}
return (d*c);
} -
piskota2
csendes tag
EZ AZ SIKERÜLT! KÖSZÖNÖM KÖSZÖNÖM VÉGRE SIKERULT
-
piskota2
csendes tag
Sziasztok köszönöm a gyors választ de sajna nem műkodik a dolog
ezt irja ki:
gggg~$ gcc hello.c -o hello (ugye igy kell futtatni ha jol értelmezem) és ez az eredmény:
gggg:~$
Mit csináltam rosszul?
de ha csak simán annyit irok hogy :
gggg:~$ gcc hello
hello.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crt1.o.rodata+0x0): first defined here
hello: In function `__data_start':
: multiple definition of `__dso_handle'
/usr/lib/gcc/i586-uhu-linux/3.4.6/crtbegin.o.data+0x0): first defined here
hello: In function `_init':
/var/uhubuild/work/object/csu/crti.S:36: multiple definition of `_init'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crti.o:/var/uhubuild/work/object/csu/crti.S:12: first defined here
hello: In function `_start':
: multiple definition of `_start'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crt1.o:init.c.text+0x0): first defined here
hello: In function `_fini':
/var/uhubuild/work/object/csu/crti.S:52: multiple definition of `_fini'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crti.o:/var/uhubuild/work/object/csu/crti.S.fini+0x0): first defined here
hello.got.plt+0x0): multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crt1.o.got.plt+0x0): first defined here
hello.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crt1.o.rodata.cst4+0x0): first defined here
hello: In function `__data_start':
: multiple definition of `__data_start'
/usr/lib/gcc/i586-uhu-linux/3.4.6/../../../crt1.o:init.c.data+0x0): first defined here
collect2: ld returned 1 exit status
nos tanácstalan vok . Sánnátok rám még egy kis időt? köszi elöre is! -
doc
nagyúr
válasz
piskota2 #106 üzenetére
mibe irjam meg
egyszeru programnal barmilyen szovegszerkeszto megteszi (ofcoz szoveges, tehat ne openoffice-szal allj neki...) pl. mcedit, gedit, vagy szemelyes kedvencem a vim
hogyan tudom utanna futtatni
eloszor le kell forditani, ehhez a gcc fog kelleni (szinte biztos hogy fent van a gepen)
forditas kb:
gcc hello.c -o hello
a hello nevu file mar futtathato binaris
aztan ha mar komolyabban belemerulsz, ugyis keresel vmilyen fejlesztokornyezetet pl. kdevelop, anjuta, stb. -
piskota2
csendes tag
SZIASZTOK!
Én most kezdenék bele a c programozasba linux alatt csak kellene egy kezdö lökés
hogy egy ilyen egyszereu progit ami kiirja hogy (hello világ!) mibe irjam meg és
hogyan tudom utanna futtatni .Segitsetek nekem ebben legyetek szivesek.
Gondolom ez alap golog de valahogy el kell kezdenem előre is köszönöm -
Jester01
veterán
Az elsõ két problémára gyári megoldás az strtok függvény. Ha az nem tetszik, kézzel valami ilyesmi lehet:
char* nexttoken(const char** ptr, char delim)
{
char* ret = NULL;
if (*ptr && **ptr)
{
int length;
const char* start = *ptr;
const char* end = strchr(start, delim);
if (end == NULL)
{
length = strlen(start);
*ptr = NULL;
} else {
length = end - start;
*ptr = end + 1;
}
ret = malloc(length + 1);
strncpy(ret, start, length);
ret[length] = 0;
}
return ret;
}
Ha több delimiter van egymás után, akkor ez szépen üres stringeket fog visszaadni. A lista végén NULL-t kapsz, és minden visszaadott tokent neked kell free-vel felszabadítani (mint ahogy a 3. kérdésedben szereplõ strdup esetében is.)
Mivel hossz paramétert nem adsz át, ezért a bemeneti string végén ott kell legyen a lezáró nulla byte különben nagy baj lesz
Amúgy sokszor elég a token pozíciója és a hossza, ekkor megszabadulsz a memóriakezelés nyûgjétõl és gyorsabb is lesz.
Elismerem, hogy egy split az egyszerûbb
[Szerkesztve]
[Szerkesztve] -
seaky77
tag
Kérlek segítsetek kb 1.5 éve programoztam utoljára C ben s most minden doksit ujra olvasgattam. De szenvedek mint egy kutya, ráadásul annyira triviális a problémán (amit javaban 2 splittel elintéznék) hogy szégyellem elmondani.
Probléma 1:
Egy char* buffer-be, select/recv-vel ömlenek az adatok.
A bufferben data1\ndata2\ndata3\n formában vannak az adatok.
Olyan fügvény kellene amit, ha hivogatok szépen visszadja data1-data2-data3-at majd ha nincs több akkor mondjuk 0-t. Vagy akár egy tömböt amiben benne van a data1-data2-data3 vagy mittomén
Probléma 2:
data felépítése: field1<space>field2<space>field3 (nincs a végén <space>!!!)
Olyan fügvény kellene amit ha hivogatok szépen visszadja field1-field2-field3-at majd ha nincs több akkor mondjuk 0-t. Vagy akár egy tömböt amiben benne van a field1-field2-field3
Bár a probléma egyszerűnek tűnik és hasonlónak tűnik de azért mégsem...
Probléma 3:
Ha egy stringet strdup-pal hozok létre free-zni kell? Áááá annyi gondom van jobban jártam volna ha nem vállalom el na mindegy.
segítsetek légyszi..
üdv,
seaky -
Aktív témák
Hirdetés
- Eladó MSI B650 GAMING PLUS WIFI Alaplap
- Eladó PNY GeForce RTX 4070 Ti SUPER 16GB videokártya
- Bomba ár! Asus Slate EP121 Tablet - Intel Core i5 I 4GB I 64GB SSD I 12" Touch I Cam I W10 I Gari!
- Bomba ár! HP EliteBook 2570P - i5-3GEN I 4GB I 320GB I DVD I 12,5" HD I W10 I Garancia!
- Bomba ár! HP EliteBook 2560P - i5-2GEN I 4GB I 320GB I 12,5" HD I W10 I Garancia!
- Xiaomi Redmi Note 14 Pro 256GB Kártyafüggetlen 1Év Garanciával
- Telefon felváráslás!! Xiaomi 13T, Xiaomi 13T Pro, Xiaomi 14T, Xiaomi 14T Pro
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- PlayStation Plus Premium előfizetések
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged