howorang Temat założony przez niniejszego użytkownika |
Program czytajacy dane do struktury » 2015-05-05 00:06:20 Hej, mam problem z pewną częścią programu: #include <stdio.h> #include <stdlib.h>
typedef struct uczen { char klasa[ 2 ]; char imie[ 20 ]; char nazwisko[ 10 ]; char wychowawca[ 20 ]; char sprawowanie[ 20 ]; } uczen; int main() { FILE * fp; int i, m; int n = 0; fp = fopen( "szkola.bin", "rb" ); fseek( fp, 0, SEEK_END ); int rozmiarpliku = ftell( fp ); fseek( fp, 0, SEEK_SET ); printf( "Podaj liczbe uczniow do wpisania: \n" ); scanf( "%d", & n ); uczen * wsk = malloc( rozmiarpliku / sizeof( uczen ) + n * sizeof( uczen ) ); for( i = 0;; i++ ) { if( fread(( wsk + i )->imie, sizeof( char ), 20, fp ) != 20 ) { break; } fread(( wsk + i )->nazwisko, sizeof( char ), 20, fp ); fread(( wsk + i )->wychowawca, sizeof( char ), 20, fp ); fread(( wsk + i )->sprawowanie, sizeof( char ), 20, fp ); fread(( wsk + i )->klasa, sizeof( char ), 2, fp ); } fclose( fp ); fp = fopen( "szkola.bin", "wb" ); for( m = 0; m < n; i++, m++ ) { printf( "Podaj imie ucznia %d: \n", i + 1 ); scanf( "%s",( wsk + i )->imie ); fwrite(( wsk + i )->imie, sizeof( char ), 20, fp ); printf( "Podaj nazwisko ucznia %d: \n", i + 1 ); scanf( "%s",( wsk + i )->nazwisko ); fwrite(( wsk + i )->nazwisko, sizeof( char ), 20, fp ); printf( "Podaj wychowawce ucznia %d: \n", i + 1 ); scanf( "%s",( wsk + i )->wychowawca ); fwrite(( wsk + i )->wychowawca, sizeof( char ), 20, fp ); printf( "Podaj sprawowanie ucznia %d: \n", i + 1 ); scanf( "%s",( wsk + i )->sprawowanie ); fwrite(( wsk + i )->sprawowanie, sizeof( char ), 20, fp ); printf( "Podaj imie klase %d: \n", i + 1 ); scanf( "%s",( wsk + i )->klasa ); fwrite(( wsk + i )->klasa, sizeof( char ), 2, fp ); } for( i = 0; i <( rozmiarpliku / 82 + n ); i++ ) { printf( "%s %s %s %s %s",( wsk + i )->imie,( wsk + i )->nazwisko,( wsk + i )->klasa,( wsk + i )->wychowawca,( wsk + i )->sprawowanie ); } fclose( fp ); return 0; }
Program nie spisuje do struktury danych ze wczesniej istniejacego pliku, byłbym wdzięczny za każdą formę pomocy. |