Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Elmélet
- * a) dinamikus 5/5
- * b) sztring 2/5
- *
- * Programozás
- * a) ársáv 6/6
- * b) hány db? /6
- * c) átmérők átlaga /6
- * d) legdrágább csapágy /6
- * e) hány SKF? /6
- *
- * Büntetőpontok
- * o hiányzó fclose() /-5
- * o hiányzó free() /-5
- * o nem dinamikus mem. kez. /-10
- *
- * A fájl beolvasása okés, de a feldolgozás hiányos, a fájl végén crashel a program.
- *
- * ÖSSZESEN: 22/40
- * Érdemjegy: még 2. ZH-t pótolni kell
- */
- #include "debugmalloc.h" // ezt én tettem bele
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <string.h>
- //Van valamiért egy breakpoint, de nem tudom, hogy miért//
- char* sorbeolvas(FILE* f) {
- int meret = 10;
- char* sor = (char*)malloc(meret);
- int hossz = 0;
- while (1) {
- char ch;
- int siker = fscanf(f, "%c", &ch);
- if (siker != 1 && hossz == 0) {
- free(sor);
- return NULL;
- }
- if (ch == '\n' || siker != 1)
- break;
- if (hossz + 1 == meret) {
- int uj_meret = meret + 10;
- char* uj_sor = (char*)malloc(uj_meret);
- memcpy(uj_sor, sor, meret);
- free(sor);
- meret = uj_meret;
- sor = uj_sor;
- }
- sor[hossz] = ch;
- hossz++;
- }
- sor[hossz] = '\0';
- return sor;
- }
- char* kettevag(char* mit, char* elvalaszto) {
- char* talalat = strstr(mit, elvalaszto);
- if (talalat == NULL)
- return NULL;
- *talalat = '\0';
- return talalat + strlen(elvalaszto);
- }
- int main(void)
- {
- FILE* f = fopen("csapagy.csv", "r");
- int db, sum;
- char arsav = NULL;
- while (!feof(f)) {
- char* sor = sorbeolvas(f); /// a sor ha NULL pointer, az is fájl végét jelenti
- if (strlen(sor) != 0 && *sor != ';') {
- int ar, katm, batm;
- char* marka = sor;
- char* maradek = kettevag(sor, ";");
- sscanf(maradek, "%d;%d;%d", &ar, &katm, &batm);
- if (ar < 2000 && ar>1800) {
- printf("%s\n", marka);
- }
- }
- }
- fclose(f);
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement