Witam, mam mały problem z programem. Dopiero uczę się C więc proszę o wyrozumiałość. Napisałem program który tworzy zadaną liczbę struktur,drukuje je i na koniec ma zapisać do pliku. Tu pojawia się problem bo o ile nazwa pendrive z programu jest zapisana bez problemu zamiast jego pojemności i ceny zapisują się jakieś dziwne znaki. Kod:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main ()
{
struct pen{
char nazwa[20];
int poj;
double cena;
};
int n,i;
printf("Ile pendrive zapisac?");
scanf("%d",&n);
struct pen peny[n];
for(i=0;i<n;i++){
printf("\nPodaj nazwe %d pendrive:",i+1);
scanf("%s",&peny[i].nazwa);
printf("\nPodaj pojemnosc %d pendrive:",i+1);
scanf("%d",&peny[i].poj);
printf("\nPodaj cene %d pendrive:",i+1);
scanf("%d",&peny[i].cena);
}
int j,m;
printf("Ile pendrive chcesz wypisac?");
scanf("%d",&m);
if(m>n){
printf("Liczba struktur do wypisania jest wieksza niz liczba uwtorzonych struktur. Program przerywa dzialanie.");
return 0;
}
for(j=0;j<m;j++){
printf("\n\n Dane pendrive %d",j+1);
printf("\n Nazwa :%s", peny[j].nazwa);
printf("\n Pojemnosc :%d", peny[j].poj);
printf("\n Cena :%d", peny[j].cena);
}
int k,l;
printf("\nIle pendrive chcesz zapisac do pliku?");
scanf("%d",&k);
if(k>n){
printf("Liczba struktur do wypisania jest wieksza niz liczba uwtorzonych struktur. Program przerywa dzialanie.");
return 0;
}
FILE *zapis;
zapis=fopen("Pendrive struktury.txt","w");
for(l=0;l<k;l++){
fwrite(&peny[l],sizeof(peny),1,zapis);
fclose(zapis);
}
return 0;
}
Z góry dziękuję za podpowiedzi i pomoc! :)