Hirdetés

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

  • 0xmilan

    addikt

    válasz skylaner #4269 üzenetére

    Köszi, jogos.
    Megnéztem egy régebbi példát, és annak mintájára külön függvénnyel fűztem a lista elejére.
    Most így néz ki a működő verzió:
    ...
    while(!feof(fp)){
    fgets(temp, 256, fp);
    sscanf(temp, "%d %[^\t] %[^\t] %[^\t] %[^\t] %[^\t] %c", &szint, &tempk, &tempa, &tempb, &tempc, &tempd, &valasz);
    lista=elejere(lista, szint, tempk, tempa, tempb, tempc, tempd, valasz);
    }
    }

    ...
    Kerdes* elejere(Kerdes *lista, int szint, char* tempk, char* tempa, char* tempb, char* tempc, char* tempd, char valasz){
    Kerdes *uj;
    uj=(Kerdes*) malloc(sizeof(Kerdes));
    uj->szint=szint;
    uj->ker=(char*) malloc((strlen(tempk)+1)*sizeof(char));
    strcpy(uj->ker,tempk);
    uj->a=(char*) malloc((strlen(tempa)+1)*sizeof(char));
    strcpy(uj->a,tempa);
    uj->b=(char*) malloc((strlen(tempb)+1)*sizeof(char));
    strcpy(uj->b,tempb);
    uj->c=(char*) malloc((strlen(tempc)+1)*sizeof(char));
    strcpy(uj->c,tempc);
    uj->d=(char*) malloc((strlen(tempd)+1)*sizeof(char));
    strcpy(uj->d,tempd);
    uj->valasz=valasz;
    uj->kov=lista;
    return uj;
    }

    Most fgets-szel beolvasok egy sort, aztán sscanf-fel meg tabulátoronként darabolom és aztán rakom új listaelembe.
    A listának meg nem is kellett volna helyet foglalni, mert az csak egy pointer..
    Még egyszer kösz a segítséget mindenkinek!

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