Kezdőlap › Fórumok › Programozás › C programozás
- This topic has 351 hozzászólás, 49 résztvevő, and was last updated 15 years, 7 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2006-04-06-18:10 #2016286
Aha…. értem!
Még egy kérdés…. Elég ha egy betût, 1 char változóba betekszek (és az tartlamazza a kódját), vagy külön le kell „kérdeznem” a karakter kódot?2006-04-06-18:25 #2016287„Még egy kérdés…. Elég ha egy betût, 1 char változóba betekszek (és az tartlamazza a kódját), vagy külön le kell „kérdeznem” a karakter kódot?”
Nem nagyon használtál még értelmes nyelvet, mi? :)))
Normális esetben csak a bináris kód van, ezt kapod meg ezt konvertálják a programok a ‘c’ formába. A gagyi nyelvekben ez a konvertálás függvénnyel (talán futásidõben) történik, Normális nyelvekben meg elõre deffiniált makrókkal, operátorokkal – mittudomén – fordítási idõben: 0x33 = ‘!’ módon pl. Egyébként asm.ben, c is így van.2006-04-06-18:33 #2016288Háát igen… Pascalt, meg Delphit tanultam eddig, és most kezdtem el a C-t 4 hónapja
2006-04-08-07:16 #2016289adamr11 wrote:Hali!Az lenne a gondom, hogy adott egy STDIN = 0 fájl leíró, amit a select fv-ben figyelek: select(STDIN, &read_fds, NULL, NULL, NULL), és a beírt szöveget majd el szeretném küldeni egy másik socket-en egy kliensnek, de egyelõre csak kiíratni a képernyõre. Viszont miután beírtam az elsõ szöveget, mondjuk, hogy 12345, majd enter, akkor még kiírja rendesen, de ha utána beírom, hogy 1234, akkor egy újsort isrrak a végére. Ha annyit íroik be, hogy 123, akkor két újsor jel, stb…
A fenti beolvasást a read() fv-nyel csináltam. Milyen ellenõrzéseket kell végrehajtani ennél, hogy rendesen mûködjön?
A select elsõ paramétere a legnagyobb fájlleíró amit figyelni akarsz _plussz_egy_! (tehát ha csak stdin van akkor 1)
A probléma valószínüleg (bár a recv-t nem másoltad ide), hogy az bájtokat másol fogalma sincs arról, hogy az string tehát a recv-ben használt buffer végére tegyél egy 0-át: r=recv(…,buff,….);buff[r]=0;
2006-04-08-07:18 #2016290vizsla wrote:Hát akkor magyarán szólva beolvasod byte-onként a szöveget, mondjuk a „src” változóba (uint8) és (ebben az esetben maszkolás nem is kell):
dst = (( src >> 4 ) | ( src << 4 ));
A „dst”-ben megtalálhatod a felcserélt bites számot (BBBBAAAA = (0000AAAA) or (BBBB0000) módon történik.)jó amit írsz, csak a BBBBAAAA nem sok kicsit 8 bitnek?
2006-04-08-07:47 #2016291„jó amit írsz, csak a BBBBAAAA nem sok kicsit 8 bitnek?”
Nem. 4 tetszõleges „A” jelû bit cserél helyet 4 tetszõleges „B” jelû bittel; a „0” pedig statikus 0. (Egyébként elõzõleg használtam „C”-t is.)
Egész egyszerûen 16 bites számokat látsz ismeretlenek (típusok/csoportok) helyett… Ami azért is furcsa, mert következetesen 8 ill 16 betût használok 8 ill. 16 bit megjelenítésére, ráadásul egyik sem konkrét példa, hanem általános.
Tehát te akarsz valamit belelátni, amivel megfertõztek. 🙂 Szerintem egyértelmû volt. (Persze írhattam volna x, y, z-t, de ált. kevésbé szeretem (bár geometriai koordinátáknál ezt használom), mert utána mi a negyedik. Ehelyett a, b, c, d…, vagy i, j, k, l…, ami meg inkább x-i, y-k, z-k kapcsolatban használok.)2006-04-08-07:52 #2016292Bár, mondjuk, hogy halmazokhoz, halmazok elemeihez stb. a,b,c…; koordinátákhoz x-i, y-j… stb. betûket használok, az szintén rossz beidegzõdés; jelen esetben a számítógépes beszûkültség miatt félreérthetõ is… bocs. 🙂
2006-04-08-08:21 #2016293jó nem nekem kell magyarázni, én értrem, hogyan kell felcserélni a biteket 🙂
csak kicsit megzavart a szép nagy ABC betû (A=10) az fel sem merült, hogy egy bit et jelöl egy nagy A 🙂2006-04-08-08:33 #2016294„csak kicsit megzavart a szép nagy ABC betû (A=10) az fel sem merült, hogy egy bit et jelöl egy nagy A”
Ez a te rossz beidegzõdésed… néha nem árt gondolkodni a beidegzõdések mellett. :))))2006-04-08-11:23 #2016295Hogy lehet a képernyõrõl leszedni a az EOF-ot?
Ahogy kéne mûködnie: Beírok egy karaktet, és kiírja a hexa kódját.
Probléma: a hexa kód után kiír egy ‘a’ betût… valószínüleg ez az EOF, próbáltam úgy leszedni, hogy a printf-hez beírtam a b -t de nem az ‘a’-t törölte, hanem a hexából törölt.Code:void main(void)
{ int i;
char a;
int hossz;
for(i=0;i<5;i++)
{ scanf("%c", &a);
printf("%x", a);
}
} -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz