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

  • Coconut's

    csendes tag

    Sziasztok!
    Lenne egy kis problémám, C kóddal szeretnék törölni egy .txt fájlból sorokat, amiket a programban kérek be, változókba. Az első hiba, hogy amikor átmeneti fájlba másolok, egymás után rakja a sorokat, nem új sorba, tehát 1 sorban lesz az egész, +hát ugye a törlés sem működik, itt a kód, amire jutottam eddig, köszönöm szépen a segítségeket előre is!

    void torol(MUSIC zene, FILE *f)
    {
    fflush(stdin);

    char celpont1, celpont2, celpont3, celpont4;
    char s[10]="";

    printf("Add meg, melyik eloado zenejet szeretned torolni!");
    fgets(&celpont1,MAX_STR,stdin);
    printf("Add meg, melyik szerzo zenejet szeretned torolni!");
    fgets(&celpont2,MAX_STR,stdin);
    printf("Add meg, milyen hosszusagu zenet szeretnel torolni!");
    fgets(s,99,stdin);
    celpont3=atoi(s);
    printf("Add meg, melyik mufaju zenet szeretned torolni!");
    fgets(&celpont4,MAX_STR,stdin);

    FILE *tmp = fopen("tmp.txt", "wb");

    // Másolás az átmeneti fájlba
    char tmp2[TMP];

    do
    {
    tmp2[TMP] = getc(f);
    if(tmp2 == &celpont1 || tmp2 == &celpont2 || tmp2 == &celpont3 || tmp2 == &celpont4)
    {
    fprintf(tmp, " ");
    }
    putc(tmp2[TMP], tmp);
    }while(!feof(f));
    // Visszamásolás
    do
    {
    tmp2[TMP] = getc(tmp);
    putc(tmp2[TMP], f);

    }while(!feof(tmp));

    fclose(tmp);
    }

    Ui.: Az f file-t miután visszatér az eljárásból, ott zárom be(a main()-ben), az f-ben vannak a sorok beolvasva így:
    adat1 // char típusú(előadója)
    adat2 // char típusú(szerzője)
    adat3 // int típusú(hossza)
    adat4 // char típusú(műfaja)

    Ez egy zeneszámos progi, 4 adat vonatkozik 1 zenére, de ez végülis nem számít, mert a sorokat egyenként is tudom törölni, mert 4 külön változóba kérem be a sorok tartalmát. Az első probléma mindenképpen az, hogy nem rak új sorokat a tmp fájlba másoláskor, pedig az f-ben úgy vannak.

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