Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. //#define CRT_SECURE_NO_WARNINGS
  2. //#include "stdafx.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7.  
  8. struct ksiazka {
  9. char imie[20];
  10. char nazwisko[20];
  11. char grupa[20];
  12. char numer[20];
  13. };
  14. struct element {
  15. struct element *poprzedni;
  16. struct ksiazka *kontakt;
  17. struct element *nastepny;
  18. };
  19.  
  20. void dodajNaPoczatek(struct element **pierwszy, struct ksiazka *kontakt) {
  21. struct element *nowykontakt = malloc(sizeof(struct element));
  22. if (nowykontakt != NULL) {
  23. nowykontakt->kontakt = kontakt;
  24. if ((*pierwszy) == NULL) {
  25. nowykontakt->nastepny = NULL;
  26. nowykontakt->poprzedni = NULL;
  27. (*pierwszy) = nowykontakt;
  28. } else {
  29. (*pierwszy)->poprzedni=nowykontakt;
  30. nowykontakt->nastepny = (*pierwszy);
  31. nowykontakt->poprzedni = NULL;
  32. (*pierwszy) = nowykontakt;
  33. }
  34.  
  35. } else {
  36. printf("blad pamieci\n");
  37. }
  38.  
  39. }
  40.  
  41. void usunElement(struct element **pierwszy,struct element *aktywny) {
  42. if ((*pierwszy) != NULL) {
  43. if (aktywny->poprzedni == NULL) {
  44. aktywny->nastepny->poprzedni = NULL;
  45. free(aktywny);
  46. } else if (aktywny->nastepny == NULL) {
  47. aktywny->poprzedni->nastepny = NULL;
  48. free(aktywny);
  49. } else {
  50. aktywny->nastepny->poprzedni = aktywny->poprzedni;
  51. aktywny->poprzedni->nastepny = aktywny->nastepny;
  52. free(aktywny);
  53. }
  54.  
  55. } else {
  56. printf("Nie ma co usunac\n");
  57. }
  58.  
  59. }
  60.  
  61. void pokazListe(struct element *pierwszy) {
  62. struct element *temp=pierwszy;
  63. printf("Lista:\n----------\n");
  64. while (temp != NULL){
  65. printf("Imie: %s, Nazwisko: %s, Grupa: %s, Numer: %s\n",temp->kontakt->imie,temp->kontakt->nazwisko,temp->kontakt->grupa,temp->kontakt->numer);
  66. temp=temp->nastepny;
  67.  
  68. }
  69. printf("----------\n\n");
  70. }
  71.  
  72.  
  73. void wczytajZpliku(struct element ** pierwszy) {
  74. FILE* plik;
  75. char nazwa[100];
  76. char wiersz[1000];
  77. struct ksiazka *nowyKontakt=malloc(sizeof(struct ksiazka));
  78. printf("Podaj nazwe pliku bez rozszerzenia\n");
  79. scanf("%999[^\n]",nazwa);
  80. strcat(nazwa,".CSV");
  81. plik=fopen(nazwa,"r");
  82. if(plik != NULL){
  83.  
  84. while(fscanf(plik,"%s",wiersz)!=EOF) {
  85. if(sscanf(wiersz,"%[^;];%[^;];%[^;];%s",nowyKontakt->imie,nowyKontakt->nazwisko,nowyKontakt->numer,nowyKontakt->grupa)==4) {
  86. dodajNaPoczatek(pierwszy, nowyKontakt);
  87. }else{
  88. printf("Blad zapisu\n");
  89. break;
  90. }
  91.  
  92. }
  93. fclose(plik);
  94. }else{
  95. printf("Zla nazwa\n");
  96. }
  97. }
  98.  
  99. int main() {
  100. struct element* pierwszy=NULL;
  101. wczytajZpliku(&pierwszy);
  102. pokazListe(pierwszy);
  103. // system("pause");
  104. return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement