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
365
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
20v on otettu kiinni
Tulipalo oli sytytetty joten murhasiko ex omat lapsensa ja heidän Äidin. Tuskin sitä kukaan ohikulkijakaan sytytti.34212070Suomessa on ollut suurtyöttömyyttä ennenkin, ja lääkäriin pääsee nykyäänkin
Täällähän oli jonkun sekopään(vas.) juttu, että ennen ei ollut työttömyyttä ja lääkäriin pääsi. Siihen alkoi tietysti ko453566- 823149
IL - Auerin lapsia oli houkuteltu rahalla Annelin puolelle?
16:12 Outoja väitteitä Sijaisäidin mukaan Auerin lapsia koetettiin houkutella nettipalstoilla muuttamaan kertomuksiaan1202907- 992804
S-kaupoissa on nykyään ihanaa käydä
Kun niissä ei enää käy satuolentoihin uskovat hihhuIit eivätkä persut. Asiakaskunta on huomattavasti siistiytynyt muutam602597Savonlinan perhesurma, epäilty mies romani, äiti kantaväestöä
https://www.is.fi/kotimaa/art-2000011676508.html Savonlinnan seudun romaniyhdistyksestä kerrottiin lauantaina IS:lle, e1592516Savonlinnan murhapolttaja romani
Ainakin IS kertoo. Arvasin heti ettei ole normi valkolainen suomalainen.2732409- 451501
Kun aika on oikea niin
Tupsahdat uudelleen tai löydän edes melkein yhtä ihanan ja joudun tyytymään... Suukko poskelles. 😘 Viattomasti vain.. �151488