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
342
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
Kanki kovana; ei tiedä pornovideoista mitään
Kaikkosen erityisavustajan asunnossa kuvattiin pornoa. Väittää ettei tiedä asiasta yhtään mitään. https://www.is.fi/po1226069- 292140
- 1771962
Mitä tämä on
Ajatella, olen viimeksi nähnyt sinua melkein vuosi sitten ohimennen. Ja silloinkin sinä välttelit minua. En ole kuullut101153Ei monet elä kuin alle 60 v, mikä vaikuttaa?
gulp, gulp.. Juice Leskinen eli 56 vuotta. Matti Nykänen eli 55 vuotta. Topi Sorsakoski eli 58 vuotta.691145- 731007
Hyvää yötä kaivatulleni
En pysty tekemään kokemaan mitään sielussa tuntuvaa, syvää, vaikuttavaa, ilman että rinnastan sen sinuun. Niin kävi tänä241007Nyt on konstit vähänä.
Nimittäin tuulivoiman vastustajilla, kun pitää perättömiä ilmiantoja tehdä. Alkaa olla koko vastustajien sakki leimattu,24922Tilinpäätösvaltuusto 27.5
Samalla viimeinen kokous ennen uudenvaltuustokauden alkamista. Vanhat antavat itselleen erinomaiset arvosanat, ja siirty42897Hevoset ajoteillä Karhulanvaaralla
Minkä ihmeen takia osaamattomat ihmiset tuovat hevosia ajoteille ja pyöräteille? Eilen oli kolari lähellä tämän takia. I12765