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
Apuaa!!
1
370
Vastaukset
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
Vain vasemmistolaiset rakennemuutokset pelastavat Suomen
Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot853704Persut huutaa taas: "kato! muslimi!"
Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe393043- 792887
- 282684
- 192655
- 522372
- 192067
- 571957
- 581826
KL: Mari Hynynen avoimena - Jouni-rakkaan ja Joel-pojan välit ovat nämä!
Mari Hynynen (ent. Perankoski) on naimisissa Jouni Hynysen kanssa. Marilla on edellisestä liitosta yksi lapsi, Joel Vola121748