[C] Modyfikacja wybranego rekordu struktury, zapisanego w pliku
Ostatnio zmodyfikowano 2013-06-01 12:12
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. 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. |
|
pekfos |
» 2013-05-28 18:25:17 Użyj trybu wb+. |
|
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
|
|
DejaVu |
» 2013-06-01 12:12:42 |
|
« 1 » |