Egyszerű C file i/o

Kezdőlap Fórumok Programozás Egyszerű C file i/o

10 bejegyzés megtekintése - 11-20 / 27
  • Szerző
    Bejegyzés
  • #2125026
    pointux
    Felhasználó

      „Ha az egész file-t beolvasom, akkor utána még tudok benn majd valahogyan kavarni? Marmint keresés meg ilyesmik.”
      Hát szerintem jobban jársz… „#”, „”… dolgokat úgysem fogja a gets lekezelni. Ráadásul gyorsabb a memóriában kezelni a dolgokat, mint karakterenként olvasgatni… noha ennél a rövid kis file-nál nem lesz fetűnő. 🙂

      „Amugy azert irta ki olyan hulyen a dolgot, mert szemét volt a memóban.”
      calloc

      Ha szimplán keresni akarsz, akkor ott a cat, grep, sed… nem kell c kód sem.

      #2125027
      pointux
      Felhasználó

        „Ha az egész file-t beolvasom, akkor utána még tudok benn majd valahogyan kavarni? Marmint keresés meg ilyesmik.”
        Hát szerintem jobban jársz… „#”, „”… dolgokat úgysem fogja a gets lekezelni. Ráadásul gyorsabb a memóriában kezelni a dolgokat, mint karakterenként olvasgatni… noha ennél a rövid kis file-nál nem lesz fetűnő. 🙂

        „Amugy azert irta ki olyan hulyen a dolgot, mert szemét volt a memóban.”
        calloc

        Ha szimplán keresni akarsz, akkor ott a cat, grep, sed… nem kell c kód sem.

        #2125028
        vargadanis
        Felhasználó

          Tudom, hogy vannak könnyebb megoldások is, mint amit én válaszottam. Ez a kis program egy másik program alapja lesz és a cél, hogy C-vel megismerkedjek egy kicsit.  Amúgy itt van a te megoldásod is:

          Code:
          #include
          #include

          int main(int argc, char *argv[])
          {
              FILE *fp;
              fp = fopen(„/boot/grub/menu.lst”, „r”);
              int size, i;
              fseek(fp, 0, SEEK_END);
              size  = ftell(fp);
              char *buff;
              buff = malloc(size);
              fseek(fp, 0, SEEK_SET);
              fread(buff, size, 1, fp);
              for(i=0; i<size; i++)
              {
            printf("%c", buff[i]);
              }
              fclose(fp);
              return 0;
          }

          Most írtam és még működik is. 🙂

          #2125029
          vargadanis
          Felhasználó

            Tudom, hogy vannak könnyebb megoldások is, mint amit én válaszottam. Ez a kis program egy másik program alapja lesz és a cél, hogy C-vel megismerkedjek egy kicsit.  Amúgy itt van a te megoldásod is:

            Code:
            #include
            #include

            int main(int argc, char *argv[])
            {
                FILE *fp;
                fp = fopen(„/boot/grub/menu.lst”, „r”);
                int size, i;
                fseek(fp, 0, SEEK_END);
                size  = ftell(fp);
                char *buff;
                buff = malloc(size);
                fseek(fp, 0, SEEK_SET);
                fread(buff, size, 1, fp);
                for(i=0; i<size; i++)
                {
              printf("%c", buff[i]);
                }
                fclose(fp);
                return 0;
            }

            Most írtam és még működik is. 🙂

            #2125030
            pointux
            Felhasználó

              Ha nincs ” a file-ban, akkor a buf=calloc(size+1,1), buf[size]=”, printf(buf)/puts(buf) is megy…

              #2125031
              pointux
              Felhasználó

                Ha nincs ” a file-ban, akkor a buf=calloc(size+1,1), buf[size]=”, printf(buf)/puts(buf) is megy…

                #2125032
                vargadanis
                Felhasználó

                  igen… jatszottam a printf(„%s”, buf)-al es ment. A puts viszont beletett egy sortotrest mindenhova, ami nem tetszett.
                  Van meg egy kinom bajom…
                  strstr-t hasznaltam, hogy egy szora rakeressek. Ez egy pointert ad vissza. Az elso megtalalastol az egesz file veget kiirja. hogyan tudom meghatarozni, hogy a fileban hol talalta ezt a reszletet es hogyan tudok egy meghatarozott hosszu charlancot, vagy stringet kiiratni?
                  Bocsi.. nincs ekezet.. raunam a valtogatasra.

                  #2125033
                  vargadanis
                  Felhasználó

                    igen… jatszottam a printf(„%s”, buf)-al es ment. A puts viszont beletett egy sortotrest mindenhova, ami nem tetszett.
                    Van meg egy kinom bajom…
                    strstr-t hasznaltam, hogy egy szora rakeressek. Ez egy pointert ad vissza. Az elso megtalalastol az egesz file veget kiirja. hogyan tudom meghatarozni, hogy a fileban hol talalta ezt a reszletet es hogyan tudok egy meghatarozott hosszu charlancot, vagy stringet kiiratni?
                    Bocsi.. nincs ekezet.. raunam a valtogatasra.

                    #2125034
                    pointux
                    Felhasználó

                      „hol talalta ezt a reszletet”
                      Ha a megkapott pointer+n-t (n>0) írsz be, akkor már a következőt adja meg

                      „es hogyan tudok egy meghatarozott hosszu charlancot”
                      pl strndup (vagy saját magad adod meg, hogy mi a vége… ha az pl. függ a karakterlánctól)

                      #2125035
                      pointux
                      Felhasználó

                        „hol talalta ezt a reszletet”
                        Ha a megkapott pointer+n-t (n>0) írsz be, akkor már a következőt adja meg

                        „es hogyan tudok egy meghatarozott hosszu charlancot”
                        pl strndup (vagy saját magad adod meg, hogy mi a vége… ha az pl. függ a karakterlánctól)

                      10 bejegyzés megtekintése - 11-20 / 27
                      • Be kell jelentkezni a hozzászóláshoz.