- Honor 200 Pro - mobilportré
- Fotók, videók mobillal
- iPhone topik
- 45 wattos vezeték nélküli töltés jön az új iPhone-ba
- VoLTE/VoWiFi
- Bemutatkozott a Poco X7 és X7 Pro
- Milyen okostelefont vegyek?
- Xiaomi 14T Pro - teljes a család?
- Honor Magic6 Pro - kör közepén számok
- Android alkalmazások - szoftver kibeszélő topik
Ú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!
- Honor 200 Pro - mobilportré
- Milyen belső merevlemezt vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Kerékpárosok, bringások ide!
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Fotók, videók mobillal
- Le Mans Ultimate
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Xbox Series X|S
- További aktív témák...
- Olcsó laptop! Lenovo Ideapad R3 3250U / 8GB RAM / 128Gb SSD!
- Xiaomi Redmi Note 12 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dell Latitude E6440 - i5-4GEN I 8GB I 320GB I 14" HD I HDMI I Cam I W10 I Garancia!
- ÁRGARANCIA! Épített KomPhone Intel i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- REFURBISHED - HP USB-C Universal Dock G1 docking station (DisplayLink)
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest