Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Modyfikacja wybranego rekordu struktury, zapisanego w pliku

Ostatnio zmodyfikowano 2013-06-01 12:12
Autor Wiadomość
plotka92
Temat założony przez niniejszego użytkownika
[C] Modyfikacja wybranego rekordu struktury, zapisanego w pliku
» 2013-05-28 18:21:11
Piszę program na zaliczenie, i napotkałem pewien problem. Otóż mam spis  klientów z ilością wypożyczonego sprzętu, spis stanu magazynu z aktualna ilością danego asortymentu. Całość opiera się na plikach, tablicach struktur. I napotkałem pewien problem w momencie pisania kodu mającego za zadanie wypożyczenie sprzętu.

1. Wybieram jaki sprzęt chce wypożyczyć
2. Wybieram klienta
3. Pobierana jest z pliku wartość aktualnego stanu sprzętu.
4. Nowa wartość = -1
5. Zapis aktualnej wartości do pliku.

C/C++
void wypozycz() {
    int wb;
    magazyn_odczyt();
    printf( "\n\n Jaki sprzet chcesz wypozyczyc [nr]: " );
    gets( dp ); wb = atoi( dp );
   
    FILE * mag_ilosc;
    mag_ilosc = fopen( "mag_ilosc.dat", "w+b" );
   
    fscanf( mag_ilosc, "%d", ml_ilosc[ wb ].ilosc_sprzetu );
    printf( "\nAktualna: %d", ml_ilosc[ wb ].ilosc_sprzetu );
    ml_ilosc[ wb ].ilosc_sprzetu = ml_ilosc[ wb ].ilosc_sprzetu - 1;
    fprintf( mag_ilosc, "%d", ml_ilosc[ wb ].ilosc_sprzetu );
    fclose( mag_ilosc );
}

Nie wiem jak to ugryźć ponieważ działa gdy jest "wb" ale po wyłączeniu programu i włączeniu programu usuwa zawartość jak jest przyjęte dla "w", dla "a" jest nie przydatne bo dopisuje na koniec pliku.
P-84201
pekfos
» 2013-05-28 18:25:17
Użyj trybu wb+.
P-84203
plotka92
Temat założony przez niniejszego użytkownika
» 2013-05-28 18:42:36
Miałem lecz chodzi o to ze przy w czy w+ on po wylaczeniu programu usuwa zawartosc. I przy ponownym uruchomieniu przy wyswietleniu magazynu na wszystkich polach bedzie 0

Lecz jest taka roznica ze przy w+b do momentu wylaczenia wszystko dziala poprawnie. I wyswietla magazyn z nowa wartoscia
P-84208
DejaVu
» 2013-06-01 12:12:42
P-84522
« 1 »
  Strona 1 z 1