Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Rickazoid

    addikt

    válasz Jester01 #2894 üzenetére

    Ez fordítható és futtatható. Nálam is csak ennyi fut épp a programomban. Egyedül az I és a rows változók deklarációja maradt ki, azok globálisak (ügy könnyebb több ciklusban kezelni ezt a néhányat, mint folyamatos értékátadásokkal, amit fogalmam sincs hogy kéne például két dimenziós tömb esetén), de erre utalok is, illetve az első pár sorból kitalálható.

    Nekem ennyi a hibaüzenet a Code::Blocks alatt:
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 0 warnings

    Mielőtt és miután javítottam a hibát a sorszámlálásnál, ahol a bezárt fájlra hivatkozott a megnyitott helyen. Persze nem ez a gond.

    Valgrindről nem is hallottam eddig, debug programok lesznek az utolsók, amiket tanulunk, ha egyáltalán sor kerül rá. Korábban sem tanultam hasonló programok használatát, pedig TurboPascalban sokkal messzebb mentünk anno.

    "Ezen felül, a buffer2 és buffer3 tömbök induláskor nincsenek inicializálva"
    Ez nem is tudom mit jelent. Illetve tudom, csak nem értem ez C-ben mit jelent. Nem használtunk semmi egyebet órákon eddig, igazából fájlkezelést se, de nem lehet megoldani az adatbázis eltárolását fájlkezelés nélkül. A buffer viszont miután fel van töltve, a buffer2-nek és a buffer3-nak pont úgy kéne működnie, mint az eddigi tömböknek, amikkel dolgom volt.
    Egyébként az általad írt hibaüzenet mit jelent? Valahogy nem tűnik értelmes mondatnak számomra egyik sem. Az általam tanultak szerint a while(Name[I][l]=buffer3[l++]); kifejezés megfelelő. Amíg van elem a buffer3-ban (l 0-ról indul és növeli önmagát, amíg a kifejezés érvénytelenné válik, mert az aktuális buffer3 helyen nincs semmi), azt eltárolja a Name tömbbe.

    Az EOF csak egy találgatás volt, nem akartam felesleges ciklusokat írni, de kellett valami, ami kinullázza a tömb tartalmát, mielőtt új értékek mennének bele, mert ha a második rövidebb, felesleges karakterek maradnak bent. De azt át tudom írni, ha jól rémlik (így reggel már rémlik) ha kihagyom az összehasonlítást és csak annyit írok, hogy while(buffer2[l++])buffer2[l-1]=' \0'; ugyanazt az eredményt érem el.

    Szerk.: Köszi, úgy tűnik az EOF elhagyása megoldotta a dolgot. Ezt megjegyzem, hogy ezt nem használjuk ilyenkor, csak ha ezzel zárjuk a streamet.

Új hozzászólás Aktív témák