- Bemutatkozott a Transcend SSD-inek zászlóshajója
- Sugárhajtómű ihlette a Zalman CPU-hűtőjét, de nem az üzemzaj tekintetében
- Félreértések az FSR 4 és a PlayStation 5 Pro körül
- Nem tetszik a Procon-SP-nek, hogy a Nintendo távolról kivégezheti a Switch 2-t
- Megcélozta az NVIDIA-t a 2 nm-es node-jával a Samsung
- Acer notebook topic
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kompakt vízhűtés
- Hisense LCD és LED TV-k
- Fujifilm X
- Hobby elektronika
- Külső 3,5'' mobil rack-ek topikja
- Sugárhajtómű ihlette a Zalman CPU-hűtőjét, de nem az üzemzaj tekintetében
Új hozzászólás Aktív témák
-
Cicero
őstag
progzh bukta. Két szám legnagyobb közös osztójára tudtok valami algoritmust?
-
Cicero
őstag
Tökjó, xcode-ban futtatva, printf-elve sturktúrából intet, jó eredményt ad, windows alatt, code:blocksban gnu compiler-rel pedig memóriaszemetet nyomtat ugyanarra...
-
Cicero
őstag
jójó mondtam h lassú a felfogásom
-
Cicero
őstag
óóóó istenek vagytok! rávezettetek:
...
while(fread(&act,1,1,f)){
...
} -
Cicero
őstag
A fájlt így olvasom végig:
while(!feof(f)){
...
}Ez helyes?
-
Cicero
őstag
Meg lett a hiba, feltételnek egy char típusú változó egyezését vizsgáltam * -jellel, aminek ascii kódja 42, csak vmiért elfelejtettem aposztrófok közé tenni. Most átírtam a változót int-re és így már jó
Egy gyors kérdés: fread-el olvasok a fájlban, első bájtját kell csak beolvasnom, akkor a fájlmutató eggyel arrébb lép vhogy így:
előtte:
||2A 33 41 57 13 ->
fread( x, 1, 1, f ) (2A bekerül x változóba)
utána: |2A||33 41 57 13
majd: fread( y, 4, 1, f )
utána 2A |33 41 57 13|| (33 41 57 13 értéke bekerül y változóba)mert ha az fread nem így olvas, dobhatom a kódom nagy részét...
-
Cicero
őstag
int main(){
int d;
FILE *f;
f=fopen("bin.dat", "rb");
fread(&d,4,1, f);
printf("The number read: %d\n", d);
printf("The number in hex: %X\n", d);
return 0;
}Atya-gatya. Hogy tudtam én ezt így elbonyolítani?
Ráadásul az LSB, MSB probléma elő sem jön, jól olvassa be... csak akkor nem tudom miért mondták h vigyázzunk erre...
-
Cicero
őstag
válasz
kingabo #2469 üzenetére
Sajna előjöhet, a házi mintafájljába is előkerül, és nyilván kell is, hogyan máshogy jelölnéd azt hogy az egyik helyiérték 0?
Megoldás még mindig kéne hexából decbe, ha valakinek van valami ötlete kérem írja le. (A gond az, hogy olvasásnál bájtonként tudok olvasni, ami 8 bit, azonban bináris és hexa között 4 bites az átjárás (szal 4 bittel tudok leírni egy hexa karaktert pl F = 1111). Beolvasásnál így a "2A" hexa szám egy karakterként jelenik meg a stringben, amit valahogy vissza kéne fejtsek egy decimális számra. Ha ezt megtudnám, már kb sínen lennék... (ugye ASCII-ban 0-tól 255 -ig terjed a karakterkód azaz hexában: 00 -> FF )
-
Cicero
őstag
Alakul a dolog, de megint elakadtam. Bináris állományból olvasnék ami pl 2A 42 42 2B. Ezt beolvasva egy stringbe ASCII kódokat kapok: " *BB+ ". Tehát 4 karaktert? Most ezeket meg kell cseréljem (least significant, most significant bit miatt), for ciklussal. Azután pedig a (+BB*) értékét át kell írjam decimálisba. Erre ezt a progit írtam:
int main(){
char s[5];
FILE *f;
int i, x, j=3;
char sc[5];
f=fopen("TEST.DAT", "rb");
if(f==NULL){
puts("hiba");
}
fread(s,1,4,f);
/*printf("igy nez ki %s", s);*/
strcpy(sc,s);
/*printf("\nmegmasolva %s", sc);*/
for(i=0;i<4;){
s[i]=sc[j];
j--;
i++;
}
/*printf("\nmost megcserelve: %s", s);*/
sscanf(s, "%x", &x);
return(x);*/
}Toroljetek a /*, */ jeleket a printfekrol es lathatova valik az egesz. Mindent megcserel kiveve ha 00 van az allomanyban. tehat pl 2A 42 42 2B mukodik de a 2A 42 00 2B mar nem (en ilyen parasztosan ellenorzok ugyanis a piros gombocokat nem ertem
)
Kozben rajottem hogy a 00 karakter egy DOS-ASCII szerint a NULL parancsnak felel meg (oh milyen szellemes, es oh milyen okos vagyok), nem pedig a 0 karakternek, es gondolom egy ilyen NULL parancsot nem tud stringbe pakolni... hm akkor mi a megoldás? Kuka az egész progirészlet ugye?
-
Cicero
őstag
kingabo, shev7 köszönöm az ötleteket!
shev7: a gond az hogy csak egyszer olvashatom végig a fájlt. Telis-tele van a házi megkötésekkel, pl dinamikus adatszerkezetnek nem használhatok dinamikusan allokált tömböt, pedig meglátásom szerint úgy jóval könnyebb lenne. Nem véletlenül van ez így
-
Cicero
őstag
fread olvas és továbblép, vagy továbblép és olvas?
-
Cicero
őstag
Ez nekem nagyon nem megy.. csak legyen meg a jegy, másodjára nem bukhatom el
Srácok elakadtam háziban már az elején. A probléma: végig kell olvassak úgy egy bináris fájlt, hogy ha *-ra (binben 2A a kódja amit a dosos ascii *-nak értelmez) akadok benne hozzak létre egy X típusú sturktúrát, ha tovább olvasva +-ra (2B) találok pedig fűzzek a jelenlegi X stuktúrához egy Y típust (tovább folytatva az olvasást ha + újabb Y a fésűn, ha * egy új X a láncban stb). A gond az hogy előre nem tudhatom a bináris fájl méretét.. Magamtól nem jövök rá, eddig fread-el és fgets-el próbálkoztam de nem tudom kiagyalni az algoritmust, nagyon nem áll rá az agyam (és be is fejeztem az önsajnálatot
)
remélem elég szarul fogalmaztam ahhoz h ne legyen érthető, szóval grafikailag vhogy így kéne:
X->X->X->...->X
| | |
Y Y Y
| |
Y Y
|
Y -
Cicero
őstag
stringet komolyan nem lehet így nyomtatni?:
char signal="alma";
printf("%c", signal); -
Cicero
őstag
Itt a szövege a házinak. A személyesen kiadott kérdést azonban nem írnám le csak priviben érhető okok miatt
-
Cicero
őstag
Ideje lesz nekiállni a programozás házi megírásának, ha nem akarok szopóágra kerülni vele (megint..). Van valaki olyan hősies és bátor hogy segítsen az algoritmus összetákolásában?
-
Cicero
őstag
windows.h -ban nincs valami szép karakter színező függvénydeklaráció?
-
Cicero
őstag
Gyuri16, kingabo: köszönöm, így már világos.
kingabo többször hasznát vettem az írásodnak azóta, sajnálom hogy olyan benyomást keltettem mintha el sem olvastam volna -
Cicero
őstag
int main(){
int i, *ar;
ar=(int*)malloc(100*sizeof(int));
for(i=0;i<100;i++){
*(ar+(i*sizeof(int)))=rand() % 1000 +1;
}
printf("%d", *(ar+sizeof(int)*2));
}Elszáll mint a szó.. nem tudom miért. Hibakódot se dob...
-
Cicero
őstag
A rand() % n függvény nem kéne random legyen?
Úgy értem nem kéne minden futtatásnál más számokat kapjak a tömb ugyanazon elemére?
-
Cicero
őstag
int main(){
FILE *f;
char *c;
int i=0;
c=(char*)malloc(50*sizeof(char));
f=fopen("szamok.txt", "r");
if(f==NULL){
printf("a megnyitas sikertelen");
}
*c=fgetc(f);
while(*(c+(sizeof(char)*i))!=EOF){
i++;
*(c+sizeof(char)*i)=fgetc(f);
}
for(i=0;i<36;i++){
printf("%c", *(c+(sizeof(char)*i)));
}
}Írtam egy ilyen beolvasós programot (akinek van rövidebb verziója, szívesen megnézném!). Ha pl hálózaton keresztül küldenek nekem egy fájlt amiből olvasnom kell, nem tudom előre a méretét, és nem is tudom megszámolni a benne lévő karaktereket. Hogy tudnám úgy lefoglalni a *c tömböt hogy mindig nyújtson a méretén ha új karaktert olvas be?
-
-
Cicero
őstag
int kerekito(double szam){
double tmp2, szam2;
int tmp;
szam2=szam;
tmp=szam2;
tmp2=szam2-tmp;
if(tmp2>0.5){
tmp2++;
}
return (int)tmp2;
}
int main(){
double szamm;
int szamm2;
puts("mit kerekitsek b+? ");
scanf("%e", &szamm);
szamm2=kerekito(szamm);
printf("kerekitve: %d", szamm2);
}Valami memóriaszemétnek tűnő rondaságot ír ki a kerekített szám helyett. Hol a hiba?
-
Cicero
őstag
létezik valami delay függvény ami figyeli a rendszerórát és mondjuk a meghívásától számítva 5 mp múlva hajtja végre a törzsében foglaltakat? welcome screent írnék a szuper mátrixos progimhoz
-
Cicero
őstag
Hehe jó tudni! Nem baj, azért a feladatot megoldja még ha korlátosan is! Léteznek más képernyőtörlő függvények amúgy? Mi történik ha a conio.h-ból bemásolom a programomba a képernyőtörlős részt, és úgy hívom meg? Úgy se lesz platformfüggetlen?
-
Cicero
őstag
olyat szeretnék csinálni, hogy amikor elindítom a programot kirajzol egy táblázatot amibe számjegyeket vár, enter lenyomásával pedig vízszintesen ugrik a következő cellára a táblázatban. 3x3-as lenne, a sor utolsó cellája után ugrana a következő sor első cellájára. Ezeket pedig mind egy 3x3-as tömbbe természetesen beírná.
Tulajdonképpen egy 3x3-as mátrixot akarok, ami kiszámolná az x1,x2,x3-at az eredményvektorok és rendsz.m. ismeretében. A számolási algoritmus megvan, csak a grafikai ficsőr érdekelne.
Mintha lenne C-ben egy képernyő-törlés parancs, ezt kihasználva minden bevitel után kirajzolná a táblázatot a megfelelő tömb értékekkel. Kettő egymásba ágyazott for ciklus lenne, i=0-tól, i=3-ig (az első a sor, a második az oszlopokat számolná), a nem definiált tömb értéke 0-a lenne (szal rajzolás előtt le kéne foglalni egy tömböt és máris nullázni).
Valakinek valami ötlet? Előttem van részekben a dolog, csak ez a grafikus megoldás, ugrálás stb nem áll össze, olyat még nem csináltam. -
Cicero
őstag
válasz
FehérHolló #2296 üzenetére
Hehe kár hogy nincs like gomb
Még nem sikerült teljesen értelmeznem a hsz-okat hogy is kéne ezt a 2D tömböt megadni a függvénynek - ma már nem is állok neki
-, de hálás lennék ha valaki tudna valami szájbarágós forrást adni a pointerek állatfajtáról (annyit már tudok hogy a tömb tulajdonképpen egy pointer az első elemre), vagy még hálásabb ha leírná saját szavaival hogy mit ért belőle
A lentebb említett mágiás példáknak is nagy hasznát venném!Tulajdonképpen előző félévben itt vesztettem el a fonalat, és tökre érthetelen maradt számomra a dinamikus adatszerkezetek, láncolt listák, fifo stb témakör (azaz a házi anyaga pl)
Ja a lényeg kimaradt: a zh példában ha jól emlékszem 8x8-as tömb volt megadva. Az én hibám hogy AxB-t írtam, de ha kukacoskodni akarnék nem kötöttem ki hogy A!=B
-
Cicero
őstag
No elvileg ez lenne a megoldásom:
int x (int t[][], int sizex){
int tmp, countx=0, county=0;
while(sizex!=0){
tmp=t[sizex-1][county];
t[sizex-1][county]=t[countx][county];
t[countx][county]=tmp;
countx++;
county++;
sizex--;
}
}Közben rájöttem, hogy valszeg a zárthelyiben elronthattam, mert felvettem egy sizey-t is és abból is kezdtem el kivonogatni, ami meg a tömb tök másik felén van...
Nyilván, főleg hogy én álltam neki programozni
-
Cicero
őstag
válasz
FehérHolló #2276 üzenetére
Hmm ez érdekes. Mert ezek szerint jól írtam meg a zh-ban az első feladatot ami 2 pontot jelentett (azaz meglett volna a zh), mégsem jött össze a dolog.
Amúgy BME-VIK prog1. Mindegy, megírom a feladatrészt, megköszönném ha rápillantanál!btw jól gondolod, meg kellett adni a tömb méterét paraméternek!
-
Cicero
őstag
Sziasztok! Egy kis segítség kéne C-ben!
Adott a feladat: írni kell egy függvényt, ami bekér egy AxB tömböt és a tömb testátlóin elhelyezkedő számokat felcseréli a másik átlójában lévőkkel ( X pattern szerű csere ).
Már ott elakadtam, hogy adjak meg paraméternek egy két dimenziós tömböt. Nyílván az int t[][] nem lesz jó, hiába működik 1D-re...
Ebben ha tudnátok segíteni örülnék, mert a többi része szerintem jó lesz! -
Cicero
őstag
Sziasztok! Olyan lehetőleg Budapesti egyént keresek aki foglalkozik C programírással. Egyetemi beadandót kéne írni, szerintem aki ért hozzá annak kb két délután alatt összejön (azért két délután, mert vannak benne kikötések.. ). A programíráson kívül még annyi kéne, hogy röviden elmagyarázza a program működését!
Jelentkezni privátban, anyagiakat is majd ott. Köszönöm.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Windows 11
- Acer notebook topic
- Nem növel telepméretet a Galaxy S26 Ultra
- Elektromos cigaretta 🔞
- BestBuy topik
- CMF Buds Pro 2 - feltekerheted a hangerőt
- A fociról könnyedén, egy baráti társaságban
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Xiaomi 15 Ultra - kamera, telefon
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- További aktív témák...
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook Laptop 14" -80% i7-10610U 16/512 FHD IPS MATT
- Eladó Lian Li O11D MINI-X gépház
- Lenovo ThinkPad P17 Tervező Vágó Laptop -50% 17,3" i7-10750H 32/512 QUADRO T1000 4GB
- FSP DAGGER PRO ATX3.0(PCIe5.0) 850W Sfx tápegység
- Eladó PNY GeForce RTX 4070 Ti SUPER 16GB OC XLR8
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
- Wilbur Smith könyvek (15 db) egyben
- BANKMENTES részletfizetés Noblechairs HERO RL valódi bőr Gamer Szék
- BANKMENTES részletfizetés ASUS TUF F16 FX607JV-QT212 Tesztvideó a leírásban Nézd meg működés közben
- Frederick Forsythe: Isten ökle (nem olvasott)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest