Új hozzászólás Aktív témák

  • hoper

    csendes tag

    Helló emberek! Lenne egy kis problémám a következő adatbáziskezelő progival. A progi noha megnyitja a bináris fájlt, de nem hajlandó beleírni a bevitt adatokat.
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <stdlib.h>

    int main() {
    int d;
    int i=0;
    int szam;
    int azon;
    int az;
    int van;
    int temp;
    FILE *fp;

    struct valtozo
    {
    int azonosito;
    char marka[100], szin[100];
    }adat[50];

    while(1) {
    az = -1;

    printf("\n\n --- MENU ---\n\n");
    printf(" 1 - Uj adat\n");
    printf(" 2 - Modositas\n");
    printf(" 3 - Kereses\n");
    printf(" 4 - Lista\n");
    printf(" 5 - Kilepes\n\n");

    printf(" Kerek egy szamot: ");
    scanf("%d", &szam);

    switch(szam) {
    case 1:
    printf("\n\n");
    printf(" UJ ADAT\n");
    do {
    printf(" Azonosito: ");
    scanf("%d", &adat[i].azonosito);
    for(d=0; d<i; d++) {
    if(adat[i].azonosito==adat[d].azonosito) {
    printf(" Mar van ilyen azonosito!\n");
    van=1;
    break;
    }
    else {
    van=0;
    }
    }
    } while(van==1);

    printf(" Marka: ");
    scanf("%s", &adat[i].marka);
    printf(" Szin: ");
    scanf("%s", &adat[i].szin);
    i++;
    break;




    case 2:
    printf("\n\n");
    printf(" MODOSITAS\n");
    printf(" Add meg a modositani kivant adatok azonositojat: ");
    scanf("%d", &azon);
    for(d=0; d<i; d++) {
    if(adat[d].azonosito==azon) {
    az=d;
    }
    }
    if(az==-1) {
    printf(" Nincs ilyen azonosito!\n");
    break;
    }

    do {
    printf(" Add meg az uj azonositot: ");
    scanf("%d", &temp);
    for(d=0; d<i; d++) {
    if(temp==adat[az].azonosito) {
    van=0;
    break;
    }
    else if(temp==adat[d].azonosito) {
    printf(" Mar van ilyen azonosito!\n");
    van=1;
    break;
    }
    else {
    van=0;
    }
    }
    } while(van==1);

    adat[az].azonosito=temp;

    printf(" Add meg az uj markat: ");
    scanf("%s", &adat[az].marka);
    printf(" Add meg az uj szint: ");
    scanf("%s", &adat[az].szin);
    break;

    case 3:
    printf("\n\n");
    printf(" KERESES\n");
    printf(" Add meg a keresni kivant adatok azonositojat: ");
    scanf("%d", &azon);

    for(d=0; d<i; d++) {
    if(adat[d].azonosito==azon) {
    az=d;
    }
    }
    if(az==-1) {
    printf(" Nincs ilyen azonosito!\n");
    break;
    }
    printf("\n A keresett adatok:\n\n");

    printf(" Azonosito: %d\n Marka: %s\n Szin: %s\n", adat[az].azonosito, adat[az].marka, adat[az].szin);
    break;

    case 4:
    printf("\n\n");
    printf(" LISTA\n");
    if(i==0) {
    printf(" A lista ures!\n");
    break;
    }

    printf(" AZONOSITO - MARKA - SZIN\n");
    for(d=0; d<i; d++) {
    printf(" %d - %s - %s\n", adat[d].azonosito, adat[d].marka, adat[d].szin);
    }
    break;
    case 5:
    printf("\n\n");
    printf(" KILEPES\n");
    int t;
    char k[2];

    if ((fp = fopen("adat.dat", "ab"))==NULL){
    printf("Cannot open file \n");
    exit(1);}
    for( i=1; i<=100; i++)
    {
    if (adat[i].azonosito==1)
    {
    t=i;
    sprintf(k, "%2d", t);
    fwrite(&k, 2, 1, fp);
    fwrite(&adat[i].marka, 50, 1, fp);
    fwrite(&adat[i].szin, 50, 1, fp);
    }

    fclose(fp);
    }
    return 0;
    default:
    printf("\n Nincs ilyen menupont!\n");
    break;







    }
    }
    }

    A program egyébként kézi kiiratással működik, a képernyőre jól ír ki, de a fájlba nem. Tisztába vagyok vele, hogy debug, de attól még a fájlba kikéne írnia az adatokat.

Új hozzászólás Aktív témák