Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct konyv{
- char nev[31];
- int darab;
- char megr[11];
- };
- int sorokszama(char *fn){
- int r = 1;
- FILE * F = fopen(fn, "r");
- char buf;
- while(!feof(F)){
- if(fread(&buf, sizeof(char), 1, F) && buf == '\n') r++;
- }
- fclose(F);
- return r;
- }
- int olvas(char *fn, struct konyv ** pkonyvek){
- int sorok = sorokszama(fn);
- FILE * F = fopen(fn, "r");
- *pkonyvek = (struct konyv*)malloc(sizeof(struct konyv)*sorok);
- int idxA;
- for(idxA = 0; idxA < sorok; idxA++){
- fscanf(F, "%s", (*pkonyvek+idxA)->nev);
- fscanf(F, "%d", &(*pkonyvek+idxA)->darab);
- fscanf(F, "%s", (*pkonyvek+idxA)->megr);
- }
- fclose(F);
- return sorok;
- }
- void torol(struct konyv ** pkonyvek){
- free(*pkonyvek);
- *pkonyvek = NULL;
- }
- int menuinput(){
- int i;
- printf("Valassz menupontot:\n");
- printf("1 | Listazas\n2 | Darabszam modositas\n3 | Kilepes\n");
- scanf("%d", &i);
- return i;
- }
- void kiir(struct konyv ** pkonyvek, int c){
- int idxA;
- printf("Konyvek:\n");
- for(idxA = 0; idxA < c; idxA++){
- printf("Cim: %s, Db: %d, Nick: %s\n", (*pkonyvek+idxA)->nev, (idxA+*pkonyvek)->darab, (idxA+*pkonyvek)->megr);
- }
- }
- void mod(struct konyv ** pkonyvek, int c){
- printf("Melyik konyvet szeretned modostani?");
- char input[31];
- scanf("%s", input);
- int idxA;
- for(idxA = 0; idxA < c && 0 != strcmp((*pkonyvek+idxA)->nev, input); idxA++);
- if(idxA == c){
- printf("A megadott konyv nem letezik...\n");
- } else {
- printf("Mennyire szeretned allitani a darabszamot?");
- int tdb;
- scanf("%d", &tdb);
- (*pkonyvek+idxA)->darab = tdb;
- printf("A darabszam sikeresen modositva...\n");
- }
- }
- void menu(struct konyv ** pkonyvek, int c){
- int i;
- while((i = menuinput()) != 3){
- switch(i){
- case 1:
- kiir(pkonyvek, c);
- break;
- case 2:
- mod(pkonyvek, c);
- break;
- default:
- printf("Something went wrong...");
- break;
- }
- }
- printf("A program kilep...");
- torol(pkonyvek);
- }
- int main(void){
- setbuf(stdout, 0);
- struct konyv * konyvek;
- int db = olvas("konyv.txt", &konyvek);
- menu(&konyvek, db);
- return 0;
- }
- /*#include <stdio.h>
- #include <stdlib.h>
- struct aknamezo{
- int w;
- int h;
- int ca;
- int **pm;
- };
- void foglal(struct aknamezo * akna){
- akna->pm = (int**)malloc(akna->h*sizeof(int*));
- int idxA;
- for(idxA = 0; idxA < akna->h; idxA++){
- *(akna->pm+idxA) = (int*)malloc(akna->w*sizeof(int*));
- }
- }
- void torol(struct aknamezo * akna){
- int idxA;
- for(idxA = 0; idxA < akna->h; idxA++){
- free(*(akna->pm+idxA));
- *(akna->pm+idxA) = NULL;
- }
- free(akna->pm);
- akna->pm = NULL;
- }
- void init(struct aknamezo * akna){
- int idxA, idxB;
- for(idxA = 0; idxA < akna->h; idxA++){
- for(idxB=0; idxB < akna->w; idxB++){
- (akna->pm)[idxA][idxB] = 0;
- }
- }
- akna->ca = 0;
- }
- void hozzaad(struct aknamezo * akna){
- int akx,aky;
- printf("Aknatelepites... (NULLATOL INDEXELUNK)");
- do{
- printf("Sor: ");
- scanf("%d", &aky);
- printf("Oszlop: ");
- scanf("%d", &akx);
- } while(!(aky >= 0 && aky < akna->h && akx >= 0 && akx < akna->w));
- printf("Akna telepitve...");
- }
- void beolvas(struct aknamezo * akna, char* fn){
- FILE * fl = fopen(fn, "r");
- fscanf(fl, "%d", &akna->w);
- fscanf(fl, "%d", &akna->h);
- foglal(akna);
- init(akna);
- int aky, akx;
- while(!feof(fl)){
- if(fscanf(fl, "%d", &aky) && fscanf(fl, "%d", &akx)){
- (akna->pm)[aky][akx] = 1; akna->ca++;
- }
- }
- if(akna->ca == 0){
- hozzaad(akna);
- }
- fclose(fl);
- }
- struct irany{
- int x;
- int y;
- };
- void iranyk(struct irany * ir, struct irany poz, struct aknamezo * akna){
- do{
- printf("Merre akarsz lepni?\n1 | FEL\n2 | JOBBRA\n3 | LE\n4 | BALRA\n");
- int input;
- scanf("%d", &input);
- switch(input){
- case 1:
- ir->y = -1;
- ir->x = 0;
- break;
- case 2:
- ir->y = 0;
- ir->x = 1;
- break;
- case 3:
- ir->y = 1;
- ir->x = 0;
- break;
- case 4:
- ir->y = 0;
- ir->x = -1;
- break;
- }
- } while (!(poz.x+ir->x >= 0 && poz.x+ir->x < akna->w && poz.y+ir->y >= 0 && poz.y+ir->y < akna->h));
- }
- void kirajz(struct aknamezo * akna){
- int idxA, idxB;
- for(idxA = 0; idxA < akna->h; idxA++){
- for(idxB = 0; idxB < akna->w; idxB++){
- printf("%d", akna->pm[idxA][idxB]);
- }
- printf("\n");
- }
- }
- int jatek(struct aknamezo * akna){
- struct irany ir;
- struct irany poz;
- int lepes = 0;
- do{
- printf("Honnan szeretnel kezdeni? (NULLATOL INDEXELUNK)\nSOR:");
- scanf("%d", &poz.y);
- printf("OSZLOP:");
- scanf("%d", &poz.x);
- }while(!(poz.y >= 0 && poz.y < akna->h && poz.x >= 0 && poz.x < akna->w) && akna->pm[poz.y][poz.x] != 1);
- while(1){
- kirajz(akna);
- iranyk(&ir, poz, akna);
- if(akna->pm[poz.y + ir.y][poz.x + ir.x] == 1){
- return lepes;
- } else {
- lepes++;
- poz.y = poz.y + ir.y;
- poz.x = poz.x + ir.x;
- printf("\nSikeres lepes! (%d,%d)\n", poz.y, poz.x);
- }
- }
- return lepes;
- }
- int main(void){
- setbuf(stdout, 0);
- struct aknamezo akna;
- beolvas(&akna, "akna.txt");
- int l = jatek(&akna);
- printf("A jatek veget ert... Kezdestol megtett lepesek szama: %d", l);
- torol(&akna);
- return 0;
- }
- */
- /*#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);
- printf("%d", retval);
- 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;
- }
- */
- /*
- #include <stdio.h>
- #include <stdlib.h>
- struct cikk{
- char nev[61];
- int vonalkod;
- };
- struct raktar{
- char nev[61];
- int darab;
- struct cikk cikkek[200];
- };
- void beker_rn(char * pNev){
- printf("Raktar neve: ");
- scanf("%s", pNev);
- }
- void beker_cikk(struct cikk * cikk){
- printf("\nCikk neve: ");
- scanf("%s", cikk->nev);
- printf("Cikk vonalkodja: ");
- scanf("%d", &cikk->vonalkod);
- }
- void beker_cikkek(struct cikk * cikkek, int db){
- int i;
- for(i = 0; i<db;i++){
- beker_cikk(&cikkek[i]);
- }
- }
- void beker(struct raktar * ptrRaktar){
- beker_rn(ptrRaktar->nev);
- beker_cikkek(ptrRaktar->cikkek, ptrRaktar->darab);
- }
- void kiir_nev(char * nev){
- printf("\n%s raktar cikkei:\n", nev);
- }
- void kiir_cikkek(struct cikk * cikkek, int db){
- int i;
- for(i=0;i<db;i++){
- printf("Cikk neve: %s\n", cikkek[i].nev);
- printf("Cikk vonalkodja: %d \n--\n", cikkek[i].vonalkod);
- }
- }
- void kiir(struct raktar * ptrRaktar){
- kiir_nev(ptrRaktar->nev);
- kiir_cikkek(ptrRaktar->cikkek, ptrRaktar->darab);
- }
- void mennyi(struct raktar * raktar){
- printf("Hany cikket szeretnel beolvasni?");
- scanf("%d", &raktar->darab);
- }
- int main(void){
- setbuf(stdout, 0);
- struct raktar raktar;
- mennyi(&raktar);
- beker(&raktar);
- kiir(&raktar);
- return 0;
- }
- //##@##Q9YJLA@5752ef6f2f86657bf0b80fba9b3a238d
- */
Add Comment
Please, Sign In to add comment