fscanf es space

Kezdőlap Fórumok Programozás fscanf es space

5 bejegyzés megtekintése - 1-5 / 5
  • Szerző
    Bejegyzés
  • #1977639
    gabaman
    Felhasználó

      Mit értesz sztring alatt? Biztosan nem azt, mint a C nyelvet létrehozók. Az fscanf (fp, „%s”, str); valóban csak a szóközig olvas, de a %s nem az idézõjelek („) közötti részt jelöli, hanem a beolvasás adatformátumát. Egyébként a szöveges fájlban nincsenek szringek, mert az egész egy karakterhalmaz. Ha az idézõjelek közötti részt akarod beolvasni, akkor az fgets() függvényt (esetleg az fgetc()+while is szóba jöhet) használd, majd ki kell szedni belõle a két idézõjel közötti részt.

      Ha esetleg komplex beolvasás kell, akkor arra ott a yacc (flex).

      #1977640
      montressor
      Felhasználó

        Egyébként a szöveges fájlban nincsenek szringek, mert az egész egy karakterhalmaz. Ha az idézõjelek közötti részt akarod beolvasni, akkor az fgets() függvényt (esetleg az fgetc()+while is szóba jöhet)  használd, majd ki kell szedni belõle a két idézõjel közötti részt.

        nem idezojelek kozul akarok szoveget kiszedni.
        a file szerkezete ilyen:

        gipsz,jakab,titulus,barmimas

        az fscanf(fd,”%s”,&var) kiszed egy teljes sort, de csak akkor, ha a sorban nincs szokoz, mert akkor ahogy Te is irtad, leall, es a kov beolvasasra szedi be a sor hatramarado reszet.
        Nekem az kene, hogy a teljes sort a new line karakterig szedje ki… Van erre opcio az fcanf-hez?
        Azert megnezem az fgets-et i, megneztem ez kell: New line-ig vagy eof ig olvas koszonom

        #1977641
        gabaman
        Felhasználó

          Nekem az kene, hogy a teljes sort a new line karakterig szedje ki… Van erre opcio az fcanf-hez?
          [align=right][snapback]89559[/snapback][/align]

          Nincs, de nincs is értelme. Az fgets() függvényt találták ki erre. Ha egyenként akarod beolvasni, akkor a „%s” helyett használhatsz „%s,”-t is, bár így az utolsó problémásan lesz beolvasva. Persze ha csak négy adat van egy sorban, akkor a „%s,%s,%s,%s” a megfelelõ minta.

          #1977642
          montressor
          Felhasználó

            Nincs, de nincs is értelme. Az fgets() függvényt találták ki erre. Ha egyenként akarod beolvasni, akkor a „%s” helyett használhatsz „%s,”-t is, bár így az utolsó problémásan lesz beolvasva. Persze ha csak négy adat van egy sorban, akkor a „%s,%s,%s,%s” a megfelelõ minta.
            [align=right][snapback]89562[/snapback][/align]

            Ezek szerint ha az „%s,%s,%s,%s” helyett, ha a converzios karakterek koze „mintakat” teszek, akkor a kozul olvassa a valtozoba az ott levo dolgot: ugy ertem:
            „Ittaszoveg%sEzavege” minta kiszedi az „Ezaszoveg”-et az „IttaszovegEzaszovegEzavege” kozul?

            Az fgetset kiprobaltam, tokeletesen mukodik:) Ejj sokat kell meg tanulnom

            #1876448
            csaba
            Felhasználó

              Hali!

              Az fscanf-el szeretnek beolvasni filebol, de ha a stringben space van akkor addig olvas. Hogy lehet rabirni, h a space-t is kozonseges karakternek kezelje?

            5 bejegyzés megtekintése - 1-5 / 5
            • Be kell jelentkezni a hozzászóláshoz.