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
      64
      6205
    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
      81
      3856
    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ä
      24
      2841
    4. Aleksi Rytilä

      Räppäri saa haluamaansa julkisuutta.
      Kotimaiset julkkisjuorut
      23
      2380
    5. 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ä
      45
      2272
    6. Onko Sanna menossa Ukrainaan viettämään vuosipäivää?

      Kun on bongattu Varsovan lentokentältä?
      Maailman menoa
      162
      1863
    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
      1709
    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
      85
      1322
    9. Missä näitte viimeksi?

      Missä näit kaivattua viimeksi ja oliko sähköä ilmassa?
      Ikävä
      34
      1281
    10. 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
      20
      1266
    Aihe