Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tiedostojen käsittely C-kielessä

Aloittelija2 [20.12.2004 14:25:33]

#

Moi!

Osaako kukaan auttaa tässä ongelmassa: Eli tuon pitäis tehdä niin, että
"tiedostossa "luvut.s" on 4 kokonaislukua. Luvut ovat tiedoston ensimmäisellä rivillä välilyönnein eroteltuna. Tee ohjelma, joka lukee tiedostosta kokonaisluvut ja laskee näiden summan. Lopuksi ohjelma tulostaa sekä luvut että summan näytölle."

Koodini ei toimi oikein. Missä pirussa on vika?

#include <stdio.h>

    int main()
    int x, y, summa;
    {
    FILE *tied_kahv;
      float luku1, luku2, luku3, luku4;

      if((tied_kahv = fopen("luvut.s", "r")) == NULL) {
       printf("Tiedostoa ei löydetty!"); return 0;
     } else {
     fscanf(tied_kahv, "%f %f %f %f ", &luku1, &luku2, &luku3, &luku4);
       fclose(tied_kahv);

      printf("Tiedostosta luvut.s löytyneet luvut: \n %.f, %.f, %.f ja %.f", luku1, luku2, luku3, luku4);

      summa=x+y;

      printf("Lukujen summa: %f + %f = %f", x, y, &summa);
     }
     return 0;
    }

Mod. edit: kooditagit

Jaska [20.12.2004 14:58:06]

#

1. Laita main()-funktion jälkeen lohkon aloittava aaltosulje.
2. Muuta summa float-tyyppiseksi ja poista muuttujien x ja y määrittelyt.
3. Kirjoita/korvaa loppuun rivit

summa=luku1+luku2+luku3+luku4;

ja

printf("Lukujen summa: %.f + %.f + %.f + %.f = %.f\n", luku1, luku2, luku3, luku4, summa);

ZcMander [20.12.2004 16:14:47]

#

Tuo kyllä kuulostaa täysin koulutehtävältä. Koulutehtävät pitää tehdä ite...

hunajavohveli [20.12.2004 18:41:05]

#

Näin on. Eihän siinä mitään opi, jos kysyy suoraan muilta, miten homma toimii. Ja jos ei halua oppia, niin sitten ei kannata koulussakaan ohjelmointia valita. Ohjelmoinnissa pitää oppia pidemmän päälle miettimään itse.
Tuossa koodissa on nyt kuitenkin vikana ainakin se, että int main():n jälkeen pitää tulla { ennen muuta koodia.
Ja Ahvenisto, lue muuten heti seuraavaksi keskustelun ohjeet ja opettele käyttämään kooditageja.

Jaska [21.12.2004 15:26:12]

#

Samaa mieltä. Itse pitäisi tehdä jos vaan osaa. Päätinpä kuitenkin vastata koska uskoisin jokaisen järkevän ihmisen kysyvän apua vasta sitten kun on miettinyt ongelmaa kauan eikä ole päässyt oikeaan lopputulokseen. Toisaalta olen huomannut itsekin oppivani hyvin myös silloin kun olen miettinyt ongelmaa ja sitten tutkinut esimerkkiratkaisua huolella.

FooBat [21.12.2004 18:32:51]

#

hunajavohveli kirjoitti:

Tuossa koodissa on nyt kuitenkin vikana ainakin se, että int main():n jälkeen pitää tulla { ennen muuta koodia.

Tässä tapauksessa kyllä, mutta tuo muistuttaa hyvin paljon vanhaa C-tyyliä, mikä vieläkin menee kääntäjistä läpi. Sitä ei voi kuitenkaan suositella enää kenellekään.

#include <stdio.h>

int main(argc, argv)
     int argc;
     char ** argv;
{
  printf("c = %d\n",argc);
  return 0;
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta