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

  • Vasinger!

    nagyúr

    Kéne egy kis segítség a programomban. Ez az egy hiba van már csak benne, de nem jövök rá miért.

    Egy telefonkönyves program menüvel a feladat, ez a részlet pedig az egyik függvény, amelyet egy menüből hívok meg.

    Igazából az történik, hogyha van elem a listába, akkor az első if ugye nem teljesül, mert lista != NULL pointerrel, azzal nincs is baj. Akkor ugye belép az else ágba. Kiírja szépen az elemeket. Bekéri, hogy melyiket szeretném törölni. Nos itt jön egy feltételvizsgálat ami kiakaszt. Azt nézem meg, hogy számot fog e bekérni, mert ha a scanf függvény egyenlő 0-val(aminek az értékét egy valami változóba tettem be), akkor nem számot írt be a felhasználó, tehát akkor belép a feltételbe.
    És most jön a lényeg!! Ugyebár azt kéne csinálnia, hogy kiírja az szöveget és egy karaktert kéne várni a felhasználótól, majd visszatér 0-val. De nem ezt csinálja. Ha nem számot írok be, akkor viszalép egyből a főmenübe, persze felvillan a kiírás, de a getcharok nem állítják meg a programot. Tehát valahonnan kap karaktert a getchar. Ez hogy lehet? Honnan kaphat? Hogy lehetne kijavítani?

    Nagyon fontos és sürgős lenne! :R

    Előre is köszi!

    A kódrészlet:

    Adatok*torol(Adatok*lista)
    {
    int t=0,valami=0,i;
    Adatok*mozgo, *lemarado;
    if (lista==NULL){
    printf("A lista nem tartalmaz elemeket!\n");
    printf ("\nA visszalépéshez kérem nyomjon le egy billentyűt!\n");
    getchar();
    return 0;
    }
    else{
    listakiiras(lista, 1); // Ez csak kilistázza egy for ciklussal printeffelve a lista elemeit.
    printf("\nMelyik bejegyzést szeretnéd törölni?\n");
    valami=scanf("%d", &t);
    if (valami==0){
    getchar();
    printf("\nÉrvénytelen válasz.\n\nKérem nyomjon le egy billentyűt a visszalépéshez!\n");
    getchar();
    return 0;
    }
    else{ stb. bla bla

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

Hirdetés