C-fejlesztés, KDevelop, stb…

Kezdőlap Fórumok Programozás C-fejlesztés, KDevelop, stb…

10 bejegyzés megtekintése - 111-120 / 185
  • Szerző
    Bejegyzés
  • #1915653
    pointux
    Felhasználó

      Ha viszont addig akarsz 250 karakterbõl álló láncot olvasni a file-ból, ameddig van, akkor a következõt ajánlom (Viszont ez is úgy, ahogy a te fgv-ed is csak akkor mûködik jól, ha a file mérete osztható 250-el.)

      struct szoveg
      {
      char sz[250];
      struct szoveg *next;
      } ;

      szoveg *aktualis;
      aktualis = malloc(filelength(fp));

      long int i=0;
      while (fgets(aktualis-]sz, 250, fp) != NULL) i++;

      #1915654
      kl223
      Felhasználó

        Hogyhogy csak akkor mûxik jó, ha a file méret osztható 250-nel? Bármikor mûxik, csak a max. sorméret 250 lehet.

        Egyébként a te megoldásod nem rossz, de lényegében egy tömböt csináltál az malloc-cal, és akkor meg már egyszerûbb megcsinálni simán dinamikus tárfoglalás nélkül.

        #1915655
        pointux
        Felhasználó

          Az fgets ebben a formában 250 db karaktert olvas be.
          Ahogy a ciklus telik megint 250-et, de ha nem tud, mert csak 40 karakter van, akkor hibaüzenetet ad.

          A kérdésem az, hogy mit akarsz csinálni?
          Mert nem értem.

          #1915656
          Morzel
          Felhasználó
            #1915657
            kl223
            Felhasználó

              Kösz. Fogalmam sincs, hogy én hol hibáztam, de akkor valszeg a te módszeredet alkalmazom majd. (ujelem+ujsor+etc, nem csak 1 mutató) mert szerintem nekem ott gázos vmi.

              Még1x kösz.
              kl223

              #1915658
              kl223
              Felhasználó

                Ja, egyébként nem egészen az a szándékom, hogy egy állományt felfûzzek, amit ide leírtam az csak egy példa volt, de a programból legalább ki tudtam venni, hogy hogyan kezelted a láncolt listát. Hááát, egy kissé bonyolultabb módszer, mint az enyém, de hát ha csak ez a mûködõképes…
                kl223

                #1915659
                pointux
                Felhasználó

                  Biztos, hogy kell láncolt lista.
                  Tudom, hogy a tanárok kedvenc feladatai közé tartoznak, de amit meg lehet egy sima mátrixszal is oldani?

                  #1915660
                  kl223
                  Felhasználó

                    Lehet, hogy vizslának van igaza, és nem kell láncolt listával szórakozni…
                    De akkor valszeg újraírom az egész forráskódot, mert már eléggé „fregmentálódott”. 😀 😀 😀

                    (Nem mintha olyan nehéz lenne. Nálam az újraírás azért jó, mert ha mindent még1x látok, akkor a fejemben van, hogy mi mit csinál, így jobban átlátom. Lehet, hogy egy-két átnézés is elég lenne. )

                    Vizsla, ha kész lesz a progi, téged foglak beleírni, mint elsõ számú támogató… 8)

                    kl223

                    #1915661
                    kl223
                    Felhasználó
                      #1915662
                      taltos
                      Felhasználó

                        Hali!

                        A típusegyezésekkel van a gond, azaz azzal a kifejezéssel, hogy
                        i / 1000.
                        Elméletileg a „/” operátor olyan értékkel tér vissza, amilyenek az operandusainak a típusa volt. Ebben az esetben az i és az 1000 is int, aminek eredményeként a kifejezés értéke is int típusú lesz. (0.576 =] 0) Ha az akarod, hogy jó eredményt kapj, akkor alkalmazni kellene a típuskényszerítést, azaz legalább az egyik operandusnak valós értékûnek kellene lennie. Azaz (gondolom elég érthetetlen volt, de most kába vagyok…)
                        i * 1.0 / 1000
                        VAGY
                        i / 1000.0

                      10 bejegyzés megtekintése - 111-120 / 185
                      • Be kell jelentkezni a hozzászóláshoz.