Apuaa!!

Meikä

Pystyiskö joku C:tä paremmin osaava kertomaan et mikä seuraavassa koodinpätkässä on vikana?

Funktion olis siis tarkotus poistaa tiedostossa oleva yksittäinen tietue ja jättää muut tietueet sinne. Kuitenkin funktio luo uuden tiedoston ja tyhjentää edellisen ja kirjoittaa tyhjennetyn tiedoston tiedot sinne uuteen tiedostoon. SIIS HUOMATKAA ET FUNKTION ALKUOSA (case 1), JONKA TARKOTUS ON TYHJENTÄÄ TIEDOSTO TOIMII; MUT case2 EI!! En käsitä mikä siinä mättää. Hermo menee!! Ohjelmana käytän MS Visual C . Toivottavasti joku truekoodari ymmärtää tästä jotain. Kiitoksia etukäteen!!

int poista(int maara)//poista funktio
{
int i,k,g, valinta;
int nappi; // muuttujien määrittely
char button;


FILE *fp_muusikot; //käytettävä tiedosto

fp_muusikot = fopen ("C:\\testi\\muusikko.txt", "w"); //tiedoston avaus kirjoittamista varten

printf ("Haluat siis poistaa tallennettuja tietoja\n\n");
printf ("Paina 1 jos haluat poistaa kaikki tallennetut tiedot\n");
printf ("Paina 2 jos haluat poistaa jonkun tietyn muusikon tiedot\n\n\n");

nappi = getch();
switch(nappi)
{
case '1' : // tyhjentää kaikki tietokannassa olevat tiedot
printf ("\n\n");
printf ("Oletko nyt aivan varma, etta haluat poistaa kaikkien muusikoiden tiedot?\n");
printf ("Paina K, jos haluat, muussa tapauksessa E\n\n");

button = getch();
switch(button)
{
case 'k' :
printf("Kaikki tiedot on poistettu tietokannasta!!!\n\n");
fprintf (fp_muusikot, ""); //tulostaa tyhjää tiedostoon,
//poistaa kaikki tiedot tiedostosta
fclose(fp_muusikot); // tiedoston sulku
printf("Paina ENTER palataksesi paavalikkoon\n\n");
break;

case 'e' :

printf ("Tietoja ei poistettu\n\n\n"); // ei poista tietoja käyttäjän niin halutessa

break;

default:

printf ("%c", BELL); //antaa äänimerkin, jos painaa virheellistä näppäintä
printf ("Painoit vaaraa merkkia\n\n");
printf ("Paina ENTER siirtyaksesi paavalikkoon\n\n");

break;

}
break;

case '2' :

FILE *fp_muusikot; //käytettävä tiedosto

fp_muusikot = fopen ("C:\\testi\\muusikko.txt", "r"); //tiedoston avaus kirjoittamista varten


for(i=0, k=1 ;i

1

321

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • fopenissa "w" luo uuden tiedoston kirjoittamista varten, eli jos samalla nimellä on olemassa vanha, se tuhotaan ensin. "a" avaa tiedoston loppuun lisäämistä varten, ja "a " avaa tiedoston luettavaksi ja kirjoitettavaksi (myös loppuun). a/a :n tapauksessa tiedosto luodaan vain silloin, jos sitä ei ole ennestään. Olikohan tarkoitus käyttää a:ta w:n sijaan ?

      Nykyään siis ensimmäinen fopen tuhoaa tiedoston sisällön, ja myöhemmät luvut eivät lue oikein mitään.

      "return maara, g, i;" ei myöskään ole sallittu syntaksi, voit palauttaa vain yhden arvon tuossa funktiossa.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. 57-vuotiads muka liian vanha töihin?

      On tämä sairas maailma. Mihin yli 55-vuotiaat sitten muka enää kelpaavat? Hidasta itsemurhaa tekemään, kun eläkkeelle ei
      Maailman menoa
      356
      4257
    2. Haluatteko miellyttää kumppaninne silmää?

      Entä muita aisteja? Mitä olette valmiita tekemään sen eteen että kumppani näkisi teissä kunnioitettavan yksilön? Olette
      Sinkut
      280
      2404
    3. By the way, olet

      mielessäni. Olet minulle tärkeä, niin suunnattoman tärkeä. En kestäisi sitä jos sinulle tapahtuisi jotain. Surullani ei
      Ikävä
      136
      1713
    4. Onko kaivattunne suosittu?

      Onko teillä paljon kilpailijoita? Mies valitettavasti näyttää olevan paljonkin naisten suosiossa :(
      Ikävä
      103
      1494
    5. J-miehelle toivon

      Hyvää yötä. Voisiko nykyistä tilannetta uhmaten vielä pienintäkään toivetta olla, päästä kainaloosi joskus lepääämään.
      Ikävä
      85
      1443
    6. Täytyi haukkuu sut lyttyyn

      En haluu tuntee rakkautta sua kohtaan enää ja haluun unohtaa sut mut sit tulee kuiteki paha olo kun haluis vaan oikeesti
      Ikävä
      61
      1287
    7. Haluatko S

      vielä yrittää?
      Ikävä
      60
      1275
    8. Kylpyläsaaren Lomakylän kahvilaravintola

      Kävimme syömässä Kylpyläsaaressa. "Naudanliha burgeri" maksoi 18,90 euroa ja lisäksi limsa 4,50 euroa. Annoksen hinnaks
      Haapavesi
      57
      1170
    9. Onkohan sulla enää tunteita

      kun nähdään seuraavan kerran? Niin hyvä fiilis on ollut viime aikoina, että se on nyt pahin pelkoni. Oletkohan unohtanut
      Ikävä
      36
      1084
    10. Rakkauden riemuvoitto

      Valta voidaan voittaa tiedolla. Mutta tieto on huonompi kuin kauneus, hellyys ja rakkaus. Siksi kauneus on vallan ja tie
      Hindulaisuus
      343
      1026
    Aihe