Ohjelmointityö & C:llä

Tumpelo aloittelija

APUVA! OSAAKO JOKU YSTÄVÄLLINEN C-KIELTÄ OSAAVA AUTTAA? MITEN IHMEESSÄ TÄLLÄNEN TEHDÄÄN? TAI TIETÄIS LINKIN MISTÄ TÄLLÄISEN OHJLELMAN VOISI LÖYTÄÄ? Kastos kun pitäis rakentaa ohjelma jolla voidaan muodostaa ja käsitellä tietokantaa (esim. asunnot, autot jne) ja pitäis tehdä seuraavia juttuja:
- tietokanta tallennetaan teksti-tai binääritiedostoksi
- luetaan tiedot tiedostosta taulukkoon tai listaan ja käsitellään niitä siinä. Alussa ei tiedosta tai se voi olla tyhjä. Pitää olla muuttuja joka sisältää tietokannassa olevien tietojen määrän
- Lisätään/poistetaan/muutetaan/etsitään tietoja

8

1186

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • lapm

      Ikävä sanoa mutta kuullostaa koulutehtävältä ja vieläpä helpolta sellaiselta.

      Yritä nyt hyvä ihminen lukea niitä muistiinpanoja ja yrittää itse.

      Taulukon käsittely on helppoa muistissa, samoin tiedoston käsittely.

      • Nimetön

        Mä tunnen/luulen tuntevani jotenkin C/C perusteet mutta siihen se sitten jää, enkä mä väittäis tota helpoksi aloittelijalle. Vaikuttaa aika laajalta tehtävältä ton kuvauksen perusteella.


      • hohhoi
        Nimetön kirjoitti:

        Mä tunnen/luulen tuntevani jotenkin C/C perusteet mutta siihen se sitten jää, enkä mä väittäis tota helpoksi aloittelijalle. Vaikuttaa aika laajalta tehtävältä ton kuvauksen perusteella.

        Minä en osaa hevonvittua mitään, mutta tuo on helposti ratkaistavissa.


    • Builder

      -En käytä enkä oikein hallitse C-kieltä,mutta mielenkiinnosta opiskelin hieman.
      -Ohjelma luo tietokantatiedoston ja kirjoittaa uusia tietueita plus tulostaa failin.
      Jos tiedostoa ei ole se luodaan.
      -Lisäksi tehdään dynaamiset taulukot ja tulostetaan ne.
      Dynaamisista taulukoista on sorvattu staattinen 2-ulotteinen taulukko,
      joka on käytettävissä.
      -Ohjelma toimii minulla.Kopioi se ainakin ensin suoraan ohjelmaasi tästä.
      -Valmiita ohjelmakokonaisuuksia et löydä mistään!!?? - on tehtävä itse.
      Tässä kuitenkin eräs osoite http://mastodontti.net/bbs/viewforum.php?f=1
      ,josta saa hieman alkeita aiheeseen.



      #include
      #include
      #include
      #include
      #include

      #pragma hdrstop
      //---------------------------------------------------------------------------
      #pragma argsused
      int kirjoita(char *tiedosto);
      int tulosta(char *tiedosto);
      int tietueita(char *tiedosto);
      void tau(char *tiedosto);
      void showmenu(void);

      struct person
      {
      //Jos syötetään enemmän merkkejä niin tietokanta on sekaisin!!!
      //Sinun täytyy estää liian pitkän merkkijonon syöttö
      char etunimi [50];
      char sukunimi [50];
      };
      //**************************************************************************
      int main(void)
      {

      //Jos tiedostoa memo.txt ei ole se luodaan
      FILE *stream;
      int valinta;
      if ((stream=fopen("memo.txt", "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      }
      fclose(stream);
      //----------------------------------------------------
      showmenu();
      scanf("%d", &valinta);
      while(valinta!=4)
      {
      switch(valinta)
      {
      case 1: kirjoita("memo.txt");
      break;

      case 2:
      system("cls");
      tulosta("memo.txt");
      break;

      case 3:
      tau("memo.txt");
      break;

      case 4:
      printf("\n\n");
      }

      printf("\n\n");
      showmenu();
      scanf("%d",&valinta);
      }
      system("cls");
      printf("Hei hei tavataan!!");

      getch();
      return 0;
      }
      //**************************************************************************
      int kirjoita(char *tiedosto)
      {
      //Kirjoitetan yksi tietue
      struct person s;
      FILE *stream;
      //Avataan tiedosto ja luodaan jos sitä ei ole
      if ((stream=fopen(tiedosto, "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      return 1;
      }
      else
      {
      printf ("Anna etunimi : \n");
      scanf("%s",s.etunimi);
      printf ("Anna sukunimi: \n");
      scanf ("%s",s.sukunimi);
      fwrite(&s, sizeof(s), 1, stream);//Kirjoita structi tiedostoon
      fclose(stream);
      return 0;
      }
      }
      //*************************************************************************
      int tulosta(char *tiedosto)
      {
      //Tulostetaan tietokantatiedoston sisältö(ilman taulukkoa)
      struct person s;
      FILE *stream;
      int tietueita=0;
      clrscr();
      printf("Tiedoston sisalto\n");
      printf("*********************\n");

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "r " )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      return 1;
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      printf ("%s %s\n",s.etunimi,s.sukunimi); /* tulostetaan tietueen kentät */
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      return 0;
      }//else
      }
      //*************************************************************************
      int tietueita(char *tiedosto)
      {
      //Tietueitten lukumäärä
      struct person s;
      FILE *stream;
      int tietueita=0;

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      }//else
      return tietueita;
      }
      //*************************************************************************
      void showmenu(void)
      {
      printf("Valitse toiminto:\n");
      printf("******************\n");
      printf("1=Kirjoita tietue\n");
      printf("2=Tulosta naytolle\n");
      printf("3=Tee taulukot plus tulosta ne\n");
      printf("4=Lopetus\n");

      }
      //*************************************************************************
      void tau(char *tiedosto)
      {
      struct person s;
      int tietueet=0;
      int pituus1=0,pituus2=0;
      FILE *stream;
      char *enimet[100]={NULL};
      char *snimet[100]={NULL};
      int i;
      char* tiedot[100][2];
      clrscr();

      printf("Taulukoitten sisalto\n");
      printf("*********************\n");
      tietueet=tietueita(tiedosto);//Tietueita tiedostossa

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      i=0;//Nollataan tietuelaskuri
      while (!feof(stream)&& i

    • Builder

      -Siinä vähän uutta
      -Tietueen deletointi lisätty
      -Hakutoiminnot voidaan suorittaa 2-ulotteisessa taulukossa,jonka ohjelma
      sisältää.(koodattavaa)
      -Tietueen muuttamista ei vielä ole.
      -Hakutoimintojakan ei vielä ole,mutta taulukosta on helppo hakea

      -Mitäs sinulle muuten kuuluu?? - loppuiko ohjelmoijan ura??


      #include
      #include
      #include
      #include
      #include

      #pragma hdrstop
      //---------------------------------------------------------------------------
      #pragma argsused
      int kirjoita(char *tiedosto);
      int tulosta(char *tiedosto);
      int tietueita(char *tiedosto);
      void tau(char *tiedosto);
      void showmenu(void);
      void poista_tietue(char *tiedosto);

      struct person
      {
      //Jos syötetään enemmän merkkejä niin tietokanta on sekaisin!!!
      //Sinun täytyy estää liian pitkän merkkijonon syöttö
      char etunimi [50];
      char sukunimi [50];
      };
      //**************************************************************************
      int main(void)
      {

      //Jos tiedostoa memo.txt ei ole se luodaan
      FILE *stream;
      int valinta;
      if ((stream=fopen("memo.txt", "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      }
      fclose(stream);
      //----------------------------------------------------
      showmenu();
      scanf("%d", &valinta);
      while(valinta!=7)
      {
      switch(valinta)
      {
      case 1:
      //Kirjoita tietue
      kirjoita("memo.txt");
      break;

      case 2:
      //Tulosta faili
      tulosta("memo.txt");
      break;

      case 3:
      //Tulosta taulukko
      tau("memo.txt");
      break;

      case 4:
      //Poista tietue
      clrscr();
      poista_tietue("memo.txt");
      break;

      case 5:
      clrscr();
      //Muuta tietue
      printf("Under work...!!");
      break;

      case 6:
      //Etsi etunimi
      clrscr();
      printf("Under work...!!");
      break;

      case 7:
      //Lopetus
      printf("\n\n");
      }

      printf("\n\n");
      showmenu();
      scanf("%d",&valinta);
      }
      system("cls");
      printf("Hei hei tavataan!!");
      getch();
      return 0;
      }
      //**************************************************************************
      int kirjoita(char *tiedosto)
      {
      //Kirjoitetan yksi tietue
      struct person s;
      FILE *stream;
      clrscr();

      //Avataan tiedosto ja luodaan jos sitä ei ole
      if ((stream=fopen(tiedosto, "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      return 1;
      }
      else
      {
      printf ("Anna etunimi : \n");
      scanf("%s",&s.etunimi);
      printf ("Anna sukunimi: \n");
      scanf ("%s",&s.sukunimi);
      fwrite(&s, sizeof(s), 1, stream);//Kirjoita structi tiedostoon
      fclose(stream);
      return 0;
      }
      }
      //*************************************************************************
      int tulosta(char *tiedosto)
      {
      //Tulostetaan tietokantatiedoston sisältö(ilman taulukkoa)
      struct person s;
      FILE *stream;
      int tietueita=0;
      clrscr();
      printf("Tiedoston sisalto\n");
      printf("*********************\n");

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "r " )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      return 1;
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      printf ("Tietue %d %s %s\n",tietueita 1,s.etunimi,s.sukunimi); /*

      tulostetaan tietueen kentät */
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      return 0;
      }//else
      }
      //*************************************************************************
      int tietueita(char *tiedosto)
      {
      //Tietueitten lukumäärä
      struct person s;
      FILE *stream;
      int tietueita=0;

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      }//else
      return tietueita;
      }
      //*************************************************************************
      void showmenu(void)
      {
      printf("Valitse toiminto:\n");
      printf("******************\n");
      printf("1=Kirjoita tietue\n");
      printf("2=Tiedostosta naytolle\n");
      printf("3=Taulukosta naytolle\n");
      printf("4=Poista tietue\n");
      printf("5=Muuta tietue\n");
      printf("6=Etsi etunimi\n");

      printf("7=Lopetus\n");

      }
      //*************************************************************************
      void tau(char *tiedosto)
      {
      struct person s;
      int tietueet=0;
      int pituus1=0,pituus2=0;
      FILE *stream;
      char *enimet[100]={NULL};
      char *snimet[100]={NULL};
      int i;
      char* tiedot[100][2];
      clrscr();

      printf("Taulukoitten sisalto\n");
      printf("*********************\n");
      tietueet=tietueita(tiedosto);//Tietueita tiedostossa
      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      i=0;//Nollataan tietuelaskuri
      while (!feof(stream)&& i

    • Builder

      -Lisätty hakutoiminto
      -Missä aloittaja luuraa???
      -Loppuiko ohjelmoijan ura??

      #include
      #include
      #include
      #include
      #include
      #include
      #pragma hdrstop
      //---------------------------------------------------------------------------
      #pragma argsused
      int kirjoita(char *tiedosto);
      int tulosta(char *tiedosto);
      int tietueita(char *tiedosto);
      void tau(char *tiedosto);
      void showmenu(void);
      void poista_tietue(char *tiedosto);
      void etsi(char *tiedosto);
      struct person
      {
      //Jos syötetään enemmän merkkejä niin tietokanta on sekaisin!!!
      //Sinun täytyy estää liian pitkän merkkijonon syöttö
      char etunimi [50];
      char sukunimi [50];
      };
      //**************************************************************************
      int main(void)
      {

      //Jos tiedostoa memo.txt ei ole se luodaan
      FILE *stream;
      int valinta;
      if ((stream=fopen("memo.txt", "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      }
      fclose(stream);
      //----------------------------------------------------
      showmenu();
      scanf("%d", &valinta);
      while(valinta!=7)
      {
      switch(valinta)
      {
      case 1:
      //Kirjoita tietue
      kirjoita("memo.txt");
      break;

      case 2:
      //Tulosta faili
      tulosta("memo.txt");
      break;

      case 3:
      //Tulosta taulukko
      tau("memo.txt");
      break;

      case 4:
      //Poista tietue
      clrscr();
      poista_tietue("memo.txt");
      break;

      case 5:
      clrscr();
      //Muuta tietue
      printf("Under work...!!");
      break;

      case 6:
      //Etsi etunimi
      clrscr();
      etsi("memo.txt");
      break;

      case 7:
      //Lopetus
      printf("\n\n");
      }

      printf("\n\n");
      showmenu();
      scanf("%d",&valinta);
      }
      system("cls");
      printf("Hei hei tavataan!!");
      getch();
      return 0;
      }
      //**************************************************************************
      int kirjoita(char *tiedosto)
      {
      //Kirjoitetan yksi tietue
      struct person s;
      FILE *stream;
      clrscr();

      //Avataan tiedosto ja luodaan jos sitä ei ole
      if ((stream=fopen(tiedosto, "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      return 1;
      }
      else
      {
      printf ("Anna etunimi : \n");
      scanf("%s",&s.etunimi);
      printf ("Anna sukunimi: \n");
      scanf ("%s",&s.sukunimi);
      fwrite(&s, sizeof(s), 1, stream);//Kirjoita structi tiedostoon
      fclose(stream);
      return 0;
      }
      }
      //*************************************************************************
      int tulosta(char *tiedosto)
      {
      //Tulostetaan tietokantatiedoston sisältö(ilman taulukkoa)
      struct person s;
      FILE *stream;
      int tietueita=0;
      clrscr();
      printf("Tiedoston sisalto\n");
      printf("*********************\n");

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "r " )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      return 1;
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      printf ("Tietue %d %s %s\n",tietueita 1,s.etunimi,s.sukunimi); /* tulostetaan tietueen kentät */
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      return 0;
      }//else
      }
      //*************************************************************************
      int tietueita(char *tiedosto)
      {
      //Tietueitten lukumäärä
      struct person s;
      FILE *stream;
      int tietueita=0;

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      }//else
      return tietueita;
      }
      //*************************************************************************
      void showmenu(void)
      {
      printf("Valitse toiminto:\n");
      printf("******************\n");
      printf("1=Kirjoita tietue\n");
      printf("2=Tiedostosta naytolle\n");
      printf("3=Taulukosta naytolle\n");
      printf("4=Poista tietue\n");
      printf("5=Muuta tietue\n");
      printf("6=Etsi \n");

      printf("7=Lopetus\n");

      }
      //*************************************************************************
      void tau(char *tiedosto)
      {
      struct person s;
      int tietueet=0;
      int pituus1=0,pituus2=0;
      FILE *stream;
      char *enimet[100]={NULL};
      char *snimet[100]={NULL};
      int i;
      char* tiedot[100][2];
      clrscr();

      printf("Taulukoitten sisalto\n");
      printf("*********************\n");
      tietueet=tietueita(tiedosto);//Tietueita tiedostossa
      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      i=0;//Nollataan tietuelaskuri
      while (!feof(stream)&& i

      • Builder

        Noin niitä virheitä tulee,varsinkin tähän aikaan aamusta!!


    • Builder

      -Tässä olisi nyt tietokantaohjelma,jota muuttamalla saadaan aikaiseksi
      jokin oma rakenne.
      -Taulukon muodostamisesta voisi tehdä oman funktion,jottei muutoksia
      tietueiden määrään tarvitsisi tehdä niin moneen paikkaan.
      En vain viitsinyt sorvata sitä tähän.
      -Lisäksi hakutoimintoon voi pistää tolower-funktion,jotta ei tarvitsisi
      välittää isoista ja pienistä kirjaimista.

      -Toiminnot:
      ***********
      Kirjoita tietue
      Poista tietue
      Tulosta tietueet
      Muuta tietue
      Hae tietue

      Muuta
      *****
      -Mitäs kuuluu aloittajan elämään??Vieläkö ohjelmoijan ura jatkuu??
      Asioitten kesken jättäminen on hiukan samaa,kuin keskeytetty
      yhdyntä,eivätkä nämä asiat niin vaikeita ole,ettei niitä voisi
      normaalijärjellä saada selvitettyä!!!



      #include
      #include
      #include
      #include
      #include
      #include
      #pragma hdrstop
      //---------------------------------------------------------------------------
      #pragma argsused
      int kirjoita(char *tiedosto);
      int tulosta(char *tiedosto);
      int tietueita(char *tiedosto);
      void tau(char *tiedosto);
      void showmenu(void);
      void poista_tietue(char *tiedosto);
      void etsi(char *tiedosto);
      void muuta(char *tiedosto);
      struct person
      {
      //Jos syötetään enemmän merkkejä niin tietokanta on sekaisin!!!
      //Sinun täytyy estää liian pitkän merkkijonon syöttö
      char etunimi [50];
      char sukunimi [50];
      };
      //**************************************************************************
      int main(void)
      {

      //Jos tiedostoa memo.txt ei ole se luodaan
      FILE *stream;
      int valinta;
      if ((stream=fopen("memo.txt", "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      }
      fclose(stream);
      //----------------------------------------------------
      showmenu();
      scanf("%d", &valinta);
      while(valinta!=7)
      {
      switch(valinta)
      {
      case 1:
      //Kirjoita tietue
      kirjoita("memo.txt");
      break;

      case 2:
      //Tulosta faili
      tulosta("memo.txt");
      break;

      case 3:
      //Tulosta taulukko
      tau("memo.txt");
      break;

      case 4:
      //Poista tietue
      clrscr();
      poista_tietue("memo.txt");
      break;

      case 5:
      clrscr();
      //Muuta tietue
      muuta("memo.txt");
      break;

      case 6:
      //Etsi etunimi
      clrscr();
      etsi("memo.txt");
      break;

      case 7:
      //Lopetus
      printf("\n\n");
      }

      printf("\n\n");
      showmenu();
      scanf("%d",&valinta);
      }
      system("cls");
      printf("Hei hei tavataan!!");
      getch();
      return 0;
      }
      //**************************************************************************
      int kirjoita(char *tiedosto)
      {
      //Kirjoitetan yksi tietue
      struct person s;
      FILE *stream;
      clrscr();

      //Avataan tiedosto ja luodaan jos sitä ei ole
      if ((stream=fopen(tiedosto, "a " )) == NULL)
      {
      fprintf(stderr, "Tiedostoa ei voi avata!!\n");
      return 1;
      }
      else
      {
      printf ("Anna etunimi : \n");
      scanf("%s",&s.etunimi);
      printf ("Anna sukunimi: \n");
      scanf ("%s",&s.sukunimi);
      fwrite(&s, sizeof(s), 1, stream);//Kirjoita structi tiedostoon
      fclose(stream);
      return 0;
      }
      }
      //*************************************************************************
      int tulosta(char *tiedosto)
      {
      //Tulostetaan tietokantatiedoston sisältö(ilman taulukkoa)
      struct person s;
      FILE *stream;
      int tietueita=0;
      clrscr();
      printf("Tiedoston sisalto\n");
      printf("*********************\n");

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "r " )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      return 1;
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      printf ("Tietue %d %s %s\n",tietueita 1,s.etunimi,s.sukunimi); /*

      tulostetaan tietueen kentät */
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      return 0;
      }//else
      }
      //*************************************************************************
      int tietueita(char *tiedosto)
      {
      //Tietueitten lukumäärä
      struct person s;
      FILE *stream;
      int tietueita=0;

      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      fread (&s,sizeof s,1,stream);

      while (!feof(stream))
      {
      fread(&s,sizeof s,1,stream); /* luetaan seuraava tietue */
      tietueita ;
      }
      fclose(stream);
      }//else
      return tietueita;
      }
      //*************************************************************************
      void showmenu(void)
      {
      printf("Valitse toiminto:\n");
      printf("******************\n");
      printf("1=Kirjoita tietue\n");
      printf("2=Tiedostosta naytolle\n");
      printf("3=Taulukosta naytolle\n");
      printf("4=Poista tietue\n");
      printf("5=Muuta tietue\n");
      printf("6=Etsi \n");

      printf("7=Lopetus\n");

      }
      //*************************************************************************
      void tau(char *tiedosto)
      {
      struct person s;
      int tietueet=0;
      int pituus1=0,pituus2=0;
      FILE *stream;
      char *enimet[100]={NULL};
      char *snimet[100]={NULL};
      int i;
      char* tiedot[100][2];
      clrscr();

      printf("Taulukoitten sisalto\n");
      printf("*********************\n");
      tietueet=tietueita(tiedosto);//Tietueita tiedostossa
      //Avataan tiedosto
      if ((stream=fopen(tiedosto, "rb" )) == NULL)
      {
      printf ("Tiedoston avaus ");
      printf (" ei onnistu.\n");
      }
      else
      {
      i=0;//Nollataan tietuelaskuri
      while (!feof(stream)&& i

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

    Luetuimmat keskustelut

    1. Epäily: Räppäri yritti tappaa vauvansa.

      https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p
      Maailman menoa
      57
      5825
    2. Räppäri kuoli vankilassa

      Ei kuulemma ole tapahtunut rikosta. Sama vahinkohan kävi Epsteinille. https://www.hs.fi/suomi/art-2000011840869.html "
      Maailman menoa
      77
      3123
    3. Välillä kyllä tuntuu, että jaat vihjeitä

      Mutta miten niistä voi olla ollenkaan varma? Ja minä saan niistä kimmokkeen luulemaan yhtä sun toista. Eli mitä ajatella
      Ikävä
      23
      2320
    4. No kyllä te luuserit voitte tehdä mitä vaan keskenänne, sitä en ymmärrä miksi pelaat,nainen

      Pisteesi silmissäni, edes ystävätasolla tippui jo tuhannella, kun sain selville pelailusi, olet toisen kanssa, vaikka ol
      Ikävä
      40
      2045
    5. Aleksi Rytilä

      Räppäri saa haluamaansa julkisuutta.
      Kotimaiset julkkisjuorut
      19
      1938
    6. Onko Sanna menossa Ukrainaan viettämään vuosipäivää?

      Kun on bongattu Varsovan lentokentältä?
      Maailman menoa
      162
      1843
    7. Kulukusuunnat

      Eikö kuhmolaiset iha oikiasti tiiä kumpi o vasen ja kumpi oikia? Tuolla ku liikennemerkissä näkyy nuolet ylös ja alas, v
      Kuhmo
      6
      1589
    8. Muusikko yritti tappaa kaksiviikkoisen vauvan

      Karu epäily: Muusikko, 32, yritti tappaa kaksiviikkoisen vauvan Oulussa. IS:n selvityksen perusteella miestä ei ole syy
      Maailman menoa
      83
      1212
    9. 81-vuotias Frederik avoimena - Ei omasta mielestä kelpaa tästä syystä realityihin: "Veemäinen..."

      Junttidiscon kuninkaana tunnettu Frederik, 81, on esiintymislavoilla suvereeni tekijä. Mies on viihdyttänyt ympäri Suome
      Suomalaiset julkkikset
      19
      1201
    10. Tynkä Eläintarha ei ole enää visiitin väärti

      Ähtärin MesiZoo on vajonnut alas. Näytillä olevien eläinten määrä on romahtanut lähemmäs -40%. Paikat ovat päässeet pah
      Ähtäri
      79
      1057
    Aihe