C programozás

Kezdőlap Fórumok Programozás C programozás

10 bejegyzés megtekintése - 191-200 / 352
  • Szerző
    Bejegyzés
  • #2016286
    rednek
    Felhasználó

      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?

      #2016287
      pointux
      Felhasználó

        „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.

        #2016288
        rednek
        Felhasználó

          Háát igen… Pascalt, meg Delphit tanultam eddig, és most kezdtem el a C-t 4 hónapja

          #2016289
          ds
          Felhasználó
            adamr11 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;

            #2016290
            ds
            Felhasználó
              vizsla 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?

              #2016291
              pointux
              Felhasználó

                „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.)

                #2016292
                pointux
                Felhasználó

                  Bá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. 🙂

                  #2016293
                  ds
                  Felhasználó

                    jó 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 🙂

                    #2016294
                    pointux
                    Felhasználó

                      „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. :))))

                      #2016295
                      rednek
                      Felhasználó

                        Hogy 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);
                        }
                        }
                      10 bejegyzés megtekintése - 191-200 / 352
                      • Be kell jelentkezni a hozzászóláshoz.