Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. /**
  2. * Elmélet
  3. * a) dinamikus 5/5
  4. * b) sztring 2/5
  5. *
  6. * Programozás
  7. * a) ársáv 6/6
  8. * b) hány db? /6
  9. * c) átmérők átlaga /6
  10. * d) legdrágább csapágy /6
  11. * e) hány SKF? /6
  12. *
  13. * Büntetőpontok
  14. * o hiányzó fclose() /-5
  15. * o hiányzó free() /-5
  16. * o nem dinamikus mem. kez. /-10
  17. *
  18. * A fájl beolvasása okés, de a feldolgozás hiányos, a fájl végén crashel a program.
  19. *
  20. * ÖSSZESEN: 22/40
  21. * Érdemjegy: még 2. ZH-t pótolni kell
  22. */
  23. #include "debugmalloc.h" // ezt én tettem bele
  24. #define _CRT_SECURE_NO_WARNINGS
  25. #include <stdio.h>
  26. #include <conio.h>
  27. #include <stdlib.h>
  28. #include <string.h>
  29.  
  30. //Van valamiért egy breakpoint, de nem tudom, hogy miért//
  31.  
  32. char* sorbeolvas(FILE* f) {
  33. int meret = 10;
  34. char* sor = (char*)malloc(meret);
  35. int hossz = 0;
  36.  
  37. while (1) {
  38. char ch;
  39. int siker = fscanf(f, "%c", &ch);
  40.  
  41. if (siker != 1 && hossz == 0) {
  42. free(sor);
  43. return NULL;
  44. }
  45. if (ch == '\n' || siker != 1)
  46. break;
  47.  
  48. if (hossz + 1 == meret) {
  49. int uj_meret = meret + 10;
  50. char* uj_sor = (char*)malloc(uj_meret);
  51. memcpy(uj_sor, sor, meret);
  52. free(sor);
  53. meret = uj_meret;
  54. sor = uj_sor;
  55.  
  56. }
  57. sor[hossz] = ch;
  58. hossz++;
  59. }
  60. sor[hossz] = '\0';
  61. return sor;
  62. }
  63.  
  64. char* kettevag(char* mit, char* elvalaszto) {
  65. char* talalat = strstr(mit, elvalaszto);
  66. if (talalat == NULL)
  67. return NULL;
  68. *talalat = '\0';
  69. return talalat + strlen(elvalaszto);
  70.  
  71. }
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. int main(void)
  82. {
  83. FILE* f = fopen("csapagy.csv", "r");
  84.  
  85. int db, sum;
  86. char arsav = NULL;
  87.  
  88. while (!feof(f)) {
  89. char* sor = sorbeolvas(f); /// a sor ha NULL pointer, az is fájl végét jelenti
  90. if (strlen(sor) != 0 && *sor != ';') {
  91.  
  92. int ar, katm, batm;
  93. char* marka = sor;
  94. char* maradek = kettevag(sor, ";");
  95. sscanf(maradek, "%d;%d;%d", &ar, &katm, &batm);
  96.  
  97. if (ar < 2000 && ar>1800) {
  98. printf("%s\n", marka);
  99. }
  100.  
  101.  
  102. }
  103. }
  104.  
  105.  
  106.  
  107.  
  108. fclose(f);
  109.  
  110. _getch();
  111. return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement