Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct elem{
- char nev[31];
- int ear;
- int db;
- };
- int sorok(char* fn){
- int retval = 1;
- FILE * fl = fopen(fn, "r");
- char buf;
- while(!feof(fl)){
- if(fread(&buf, sizeof(char), 1, fl) && buf == '\n')retval++;
- }
- fclose(fl);
- return retval;
- }
- void torol(struct elem ** praktar){
- if(*praktar != NULL){
- free(*praktar);
- *praktar = NULL;
- }
- }
- void foglal(struct elem ** praktar, int x){
- *praktar = (struct elem*)malloc(sizeof(struct elem)*x);
- }
- int beolvas(struct elem ** praktar){
- torol(praktar);
- char fn[65];
- printf("File neve: ");
- scanf("%s", fn);
- int sr = sorok(fn);
- foglal(praktar, sr);
- FILE * fl = fopen(fn, "r");
- int idxA;
- for(idxA = 0; idxA < sr; idxA++){
- fscanf(fl, "%s", (*praktar+idxA)->nev);
- fscanf(fl, "%d", &(*praktar+idxA)->ear);
- fscanf(fl, "%d", &(*praktar+idxA)->db);
- }
- fclose(fl);
- return sr;
- }
- void kiir(struct elem * raktar, int sorok){
- if(raktar == NULL){
- printf("Nincs mit kiirni, a lista üres...");
- } else {
- int idxA;
- printf("A lista:\n");
- for(idxA = 0; idxA < sorok; idxA++){
- printf("Nev: %s - E.ar: %d - Darab: %d\n", (raktar+idxA)->nev, (raktar+idxA)->ear, (raktar+idxA)->db);
- }
- }
- }
- void keres(struct elem * raktar, int sr){
- if(raktar == NULL){
- printf("Nincs mit keresni, a lista üres...");
- return;
- }
- char nev[31];
- printf("Mire szeretnel rakeresni?");
- scanf("%s", nev);
- int idxA;
- for(idxA = 0; idxA < sr && strcmp(nev, raktar[idxA].nev); idxA++);
- if(idxA == sr){
- printf("Nincs ilyen...\n");
- } else {
- printf("Nev: %s - E.ar: %d - Darab: %d\n", (raktar+idxA)->nev, (raktar+idxA)->ear, (raktar+idxA)->db);
- }
- //printf("%d", strcmp(nev, raktar[idxA].nev));
- }
- int minput(){
- printf("Valassz a menupontok kozul:\n");
- printf("1. Lista betoltese\n2. Kereses\n3. Listazas\n4. Kilepes");
- int o=-1;
- scanf("%d", &o);
- return o;
- }
- int main(void) {
- setbuf(stdout, 0);
- struct elem * raktar = NULL;
- int sr = -1;
- int o = -1;
- while(o != 4){
- switch((o = minput())){
- case 1:
- sr = beolvas(&raktar);
- break;
- case 2:
- keres(raktar, sr);
- break;
- case 3:
- kiir(raktar, sr);
- break;
- case 4:
- torol(&raktar);
- printf("A program kilep... A memoria fellelegzik\n");
- break;
- default:
- printf("Hibas bemenet!\n");
- break;
- }
- }
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment