Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. Malliratkaisu
  2.  
  3. #include <stdio.h>
  4.  
  5. /* tehdään rakenteesta globaali */
  6. struct henkilo{
  7. char etunimi[20+1];
  8. char sukunimi[20+1];
  9. char puhelin[20+1];
  10. };
  11.  
  12. int main(void)
  13. {
  14. struct henkilo hlotaulu[50], poistettava;
  15. int tietoja, i, poistettuja = 0;
  16. const char *tiedNimi = "luettelo.txt";
  17. FILE *fp;
  18.  
  19. /* haetaan tiedostosta tulostettavat tiedot */
  20. if((fp = fopen(tiedNimi,"r")) == NULL){
  21. printf("tiedoston %s avaaminen epäonnistui\n", tiedNimi);
  22. exit(1);
  23. }
  24. fscanf(fp,"%d", &tietoja);
  25. for(i=0;i<tietoja;i++){
  26. fscanf(fp,"%s %s %s",
  27. hlotaulu[i].etunimi, hlotaulu[i].sukunimi, hlotaulu[i].puhelin);
  28. }
  29. fclose(fp);
  30.  
  31. /* poistettavan henkilön tietojen kysyminen */
  32. printf("Anna etunimi:");
  33. scanf("%s",poistettava.etunimi);
  34. printf("Anna sukunimi:");
  35. scanf("%s",poistettava.sukunimi);
  36.  
  37. /* päivitetään tiedot, jos henkilö löytyy */
  38. if((fp = fopen(tiedNimi,"w")) == NULL){
  39. printf("tiedoston %s avaaminen epäonnistui\n", tiedNimi);
  40. exit(1);
  41. }
  42. for(i=0;i<tietoja;i++){
  43. if(strcmp(poistettava.etunimi,hlotaulu[i].etunimi) == 0 &&
  44. strcmp(poistettava.sukunimi,hlotaulu[i].sukunimi) == 0){
  45. poistettuja++;
  46. }
  47. }
  48.  
  49. if(poistettuja != 0){
  50. fprintf(fp,"%d\n", tietoja-poistettuja);
  51. }
  52. else{
  53. fprintf(fp,"%d\n", tietoja);
  54. }
  55.  
  56. poistettuja = 0;
  57. for(i=0;i<tietoja;i++){
  58. if(strcmp(poistettava.etunimi,hlotaulu[i].etunimi) == 0 &&
  59. strcmp(poistettava.sukunimi,hlotaulu[i].sukunimi) == 0){
  60. poistettuja++;
  61. }
  62. else{
  63. fprintf(fp,"%s %s %s\n", hlotaulu[i].etunimi, hlotaulu[i].sukunimi, hlotaulu[i].puhelin);
  64. }
  65. }
  66.  
  67. if(poistettuja == 0){
  68. printf("Etsimääsi henkilöä ei löytynyt luettelosta.\n");
  69. }
  70. else{
  71. printf("Tiedot poistettu luettelosta.\n");
  72. }
  73.  
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement