Jak zapisać 100 tablic rejestracyjnych w pliku .bin?

0

Mam taki program zapisujący dane w pliku .txt:

#define _CRT_SECURE_NO_DEPRECATE

#include<iostream>
#include<conio.h>
#include<string>
#include<cstdio>
#include<time.h>

using namespace std;

int main()
{
	srand(time(NULL));


	FILE *plik = fopen("samochody.txt", "w");

	if (plik == NULL)
		printf("nie udalo sie stworzyc pliku\r\n");
	else

		for (int i = 0; i < 100; i++)
		{
		 fprintf(plik, "%c%c%c%d%d%d%d: %d km \n", rand() % 26 + 'A', rand() % 26 + 'A', rand() % 26 + 'A',rand()%10, rand()%10, rand()%10, rand()%10, rand() %10000+20000 );
		
		}



			fclose(plik);

	_getch();
}

Jak zapisać te dane tylko, że w pliku .bin?

PS: Zadanie brzmi tak:
Napisz program tworzący plik:„samochody.bin”. Korzystając z funkcji
fwrite wypełnij go losowymi numerami rejestracyjnymi 100 samochodów i ich losowymi przebiegami.
Do zapisywania danych o każdym samochodzie będziesz potrzebował
3 - elementowy łańcuch znaków na litery i dwie liczby 2 - bajtowe
(unsigned short). Porównaj rozmiar utworzonego pliku z „samochody.txt”
z zadania 1 oraz ich zawartość podejrzaną w notatniku.

0

tablica struktur + fwrite całości.

0

Ale jak zrobić, żeby to było losowe, już raz pisałem kod taki:

#define _CRT_SECURE_NO_DEPRECATE

#include<iostream>
#include<conio.h>
#include<string>
#include<cstdio>
#include<time.h>


struct sOsoba
{
	char imie[10];
	short data_urodzenia;
	unsigned char waga;
	unsigned char wzrost;
};

using namespace std;

int main()
{


	
	sOsoba ludzie[3] = { { "Jan", 1985, 73, 178 }, { "Kasia", 1960, 53, 171 }, { "Adam", 1990, 82, 185 } };


	FILE *plik = fopen("Osoby.bin", "wb");

	if (plik == NULL)
		printf("nie udalo sie stworzyc pliku\r\n");
	else
		fwrite(ludzie, sizeof(sOsoba), 3, plik);
		fclose(plik);



	_getch();
}
0

A tak poza tematem trochę: to ma być C++ czy C? Bo FILE* zamiast ofstream sugeruje C, ale już namespace std - wręcz odwrotnie.
Jeżeli C++ jest tylko dla umożliwienia zapisu for (int i .... ) użyj dialektu C99 albo nowszego.

Pozdrawiam

0
_13th_Dragon napisał(a):

tablica struktur + fwrite całości.

Mógłbyś pomóc, bo nie mam pojęcia jak to zrobić:P

0

Źle:

SPOJowiecaa napisał(a):

Korzystając z funkcji fwrite wypełnij go losowymi numerami rejestracyjnymi 100 samochodów i ich losowymi przebiegami.

0

Jeśli chodzi o: http://wklej.org/id/1587513/

to bardzo ładnie i kompaktowo, ale masz kilka błędów powodujących niepotrzebnie obniżenie ew. oceny (jeśli będzie oceniał człowiek):

  1. za krótkie nazwy w strukturze i jej elementach

  2. brak przebiegu w strukturze - j.w.

  3. nie napisałeś i nie użyłeś funkcji "losowa_litera", "losowa_cyfra" oraz "losowy_przebieg" (poczytaj o DRY)

  4. nie zdefiniowałeś i nie użyłeś stałej dla 100

  5. niepotrzebnie wmieszałeś w to C++

#include<string>
using namespace std;

1 użytkowników online, w tym zalogowanych: 0, gości: 1