Wpis z mikrobloga

@MlodyDziadzioSpamer:
using namespace std;
struct urzadzenie
{
char nazwa[20];
float moc;
int waga;
};
void wypelnij(urzadzenie *u);
void wyswietl(urzadzenie *u);
void zapis(urzadzenie *u);
int main()
{
urzadzenie pralka;
wypelnij(&pralka);
wyswietl(&pralka);
zapis(&pralka);
return 0;
}
void wypelnij(urzadzenie *u)
{
cout << "podaj nazwe urzadzenia bez spacji: ";
cin >> u->nazwa;
cout << "podaj moc znamionowa w kilowatach: ";
cin >> u->moc;
cout << "podaj wage urzadzenia w kilogramach: ";
cin >> u->waga;
@jimw: No i masz dwa błędy w kodzie:
1. void wyswietl(urzadzenie u) -> powinno być void wyswietl(urzadzenie* u)
2. if(f=NULL)
cout << "nie mozna utworzyc pliku do zapisu!!" <<endl;
powinno być:
if(f == NULL)
cout << "nie mozna utworzyc pliku do zapisu!!" <<endl; - czyli porównanie zamiast przypisania.

Inna sprawa kolego, że program Ci wali błędem, że próbujesz zapisać pod nullowy strumień a Ty się na wykopie pytasz co jest źle.
@jimw: Bo sizeof(u) to jest rozmiar wskaźnika, a ty chcesz zapisać tyle bajtów ile ma sizeof(urządzenie) czyli sizeof(* u) i takich elementów wskazywanych przez wskaźnik u chesz zapisać 1. czyli reasumując powinno być: fwrite(u, sizeof(* u), 1, f); oczywiście * u bez spacji, ale jak piszę w komentarzu na wypoku bez spacji to się nie wyświetla gwiazdka.