problem z zapisem struktur do pliku
Ostatnio zmodyfikowano 2013-03-18 20:56
rita312 Temat założony przez niniejszego użytkownika |
problem z zapisem struktur do pliku » 2013-03-18 20:23:38 W moim kodzie napisałam funkcje wybrane która ma zapisywać do pliku tylko te elementy struktury dla których pole rok produkcji jest większe niż podana przez użytkownika wartość prog. Tylko że coś tu nie działa. Poniżej wstawiam mój kod prosze o wskazówki. #include<stdio.h> #include<stdlib.h> #include<string.h>
struct aut_o { char model[ 40 ]; int rok_produkcji; float pojemnosc_silnika; }; void wybrane( int prog, char plik_wy, struct aut_o * glowa ) { FILE * plik; if(( glowa->rok_produkcji ) > prog ) { plik = fopen( plik_wy, "a+" ); fprintf( plik, "%s %i %f\n", glowa->model, &( glowa->rok_produkcji ), &( glowa->pojemnosc_silnika ) ); } else printf( " " ); fclose( plik ); } main() { int i; struct aut_o * wsk, * glowa = NULL; char plik_we[ 20 ]; int prog; char plik_wy[ 20 ] = "konkrety.txt"; printf( "Podaj plik wejsciowy: " ); scanf( "%s", plik_we ); printf( "Podaj progowa wartosc roku produkcji: " ); scanf( "%d", & prog ); FILE * stream; if(( stream = fopen( plik_we, "r" ) ) == NULL ) exit( 1 ); while( !feof( stream ) ) { if( glowa == NULL ) glowa = wsk = malloc( sizeof( struct aut_o ) ); fscanf( stream, "%s %i %f\n", wsk->model, &( wsk->rok_produkcji ), &( wsk->pojemnosc_silnika ) ); printf( "zapisany rekord to: %s %i %.2f\n", wsk->model, wsk->rok_produkcji, wsk->pojemnosc_silnika ); } fclose( stream ); wybrane( prog, plik_wy, glowa ); getchar(); return 0; } |
|
killjoy |
» 2013-03-18 20:56:39 Nie chce mi się pisać co było źle, a, że mam dobry humor, masz gotowca przeanalizuj sobie: #include < stdio.h > #include < stdlib.h > #include < string.h >
struct aut_o { char model[ 40 ]; int rok_produkcji; float pojemnosc_silnika; }; void wybrane( int prog, char plik_wy[], struct aut_o * glowa ) { if(( glowa->rok_produkcji ) > prog ) { FILE * plik; plik = fopen( plik_wy, "a+" ); fprintf( plik, "%s %i %f\n", glowa->model, glowa->rok_produkcji, glowa->pojemnosc_silnika ); fclose( plik ); } else printf( " " ); } int main() { int i = 0; aut_o * wsk, * glowa; glowa = NULL; char plik_we[ 20 ]; int prog = 0; char plik_wy[ 20 ] = "konkrety.txt"; printf( "Podaj plik wejsciowy: " ); scanf( "%s", plik_we ); printf( "Podaj progowa wartosc roku produkcji: " ); scanf( "%d", & prog ); FILE * stream; if(( stream = fopen( plik_we, "r" ) ) == NULL ) exit( 1 ); while( !feof( stream ) ) { if( glowa != wsk ) { wsk =( aut_o * ) malloc( sizeof( aut_o ) ); glowa = wsk; } fscanf( stream, "%s %d %f", wsk->model, &( wsk->rok_produkcji ), &( wsk->pojemnosc_silnika ) ); printf( "zapisany rekord to: %s %i %.2f\n", wsk->model, wsk->rok_produkcji, wsk->pojemnosc_silnika ); } fclose( stream ); wybrane( prog, plik_wy, glowa ); system( "pause" ); return 0; }
|
|
« 1 » |