View difference between Paste ID: 7NH84tuh and 5An1qCg5
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4-
 // strtok
4+
// pizza
5-
#define MERET 100
5+
typedef struct
6-
 
6+
7-
int main()
7+
    char nev[40];
8
    int feltet;
9-
    // Deklaraciok
9+
}PIZZA;
10-
    int c, karakter_pozicio, beolvasott_tokenek_szama, beolvasott_sorok_szama;
10+
11-
    char elso[MERET], aktualis[MERET], utolso[MERET];
11+
int main(int argc, char** argv)
12-
 
12+
13-
    // Inicializaciok
13+
    FILE *f=fopen(argv[1], "r");
14-
    karakter_pozicio = 0;
14+
    PIZZA *t=NULL;
15-
    beolvasott_sorok_szama = 0;
15+
    char c, nev[40];
16-
    beolvasott_tokenek_szama = 0;
16+
    int feltet=0, maxfeltet=0, i=0, db=-1, tmeret=0, j;
17-
 
17+
18-
    // Vegtelen sok karakter beolvasasa
18+
    while (1)
19-
    while( c = getchar() )
19+
20
        i=0;
21-
        if ( c == EOF )                                 // Ha elertuk a fajl veget,
21+
        db=-1;
22
        while (1)
23-
            break;                                      // Kilep a vegtelen sok karakter beolvasasabol
23+
24
            c=fgetc(f);
25-
        else if ( c == ';' || c == '\n')                // Ha elhatarolo karaktert olvastunk
25+
            if (c==EOF || c==';')
26
                break;
27-
            aktualis[karakter_pozicio] = '\0';          // Zarjuk le az aktualisan kezelt tokent
27+
            nev[i]=c;
28-
            beolvasott_tokenek_szama++;                 // Merhetjuk, hanyadik token volt a sorban
28+
            i++;
29-
            if ( beolvasott_tokenek_szama == 1 )        // Ha az elso,
29+
30-
            {
30+
        nev[i]='\0';
31-
                strcpy( elso , aktualis );              // Akkor tarolhatjuk kulon egy valtozoban, mert kituntetett szerepu
31+
        if (c==EOF)
32-
                /* Ha ide er a program feldolgozasa,
32+
            break;
33-
                akkor elertuk az elso token veget,
33+
        while(1)
34-
                szabadon hajthatunk vegre muveleteket vele */
34+
35-
                printf("%s volt az elso token\n", elso);
35+
            c=fgetc(f);
36-
            }
36+
            if (c=='\n' || c==EOF)
37-
            karakter_pozicio = 0;                       // Az indexet amivel mozgunk a tokenben inicializaljuk
37+
                break;
38-
            /* Ha ide er a program feldolgozasa,
38+
            if (c==';')
39-
                akkor elertuk egy token veget,
39+
                db++;
40-
                szabadon hajthatunk vegre muveleteket vele */
40+
41-
            printf("   %s beolvasva (%d. token)\n", aktualis, beolvasott_tokenek_szama);
41+
        if (db>maxfeltet)
42-
 
42+
            maxfeltet=db;
43-
 
43+
        t = realloc(t,(tmeret+1)*sizeof(PIZZA));
44-
            if (c == '\n')                              // Ha vege egy sor (teszteset) feldolgozasanak,
44+
        strcpy(t[tmeret].nev, nev);
45-
            {
45+
        t[tmeret].feltet=db;
46-
                beolvasott_tokenek_szama = 0;           // Inicializaljuk a sorban levo tokenek szamat
46+
        tmeret++;
47-
                beolvasott_sorok_szama++;               // Merhetjuk, hany sort olvastunk eddig
47+
48-
                strcpy( utolso , aktualis );            // Tarolhatjuk kulon valtozoban az utolso tokent amit neha atof()-el at kell alakitani
48+
    printf("%d\n", maxfeltet);
49-
 
49+
    for (j=0; j<tmeret; j++)
50-
                /* Ha ide er a program feldolgozasa,
50+
        if (t[j].feltet==maxfeltet)
51-
                akkor elertuk egy sor veget,
51+
            printf("%s\n", t[j].nev);
52-
                szabadon hajthatunk vegre muveleteket vele */
52+
53-
                printf("%s volt az utolso token (erteke: %lf)\n", utolso, atof(utolso));
53+
54-
                printf("\n---   %d. sor beolvasva   ---\n\n", beolvasott_sorok_szama);
54+
    fclose(f);
55-
            }
55+
56
}