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

problem z zapisem struktur do pliku

Ostatnio zmodyfikowano 2013-03-18 20:56
Autor Wiadomość
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.
C/C++
#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;
}
P-78796
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:
C/C++
#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;
}
P-78809
« 1 »
  Strona 1 z 1