Jak zapisać 100 tablic rejestracyjnych w pliku .bin?

2015-01-08 10:20

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

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.

edytowany 2x, ostatnio: SPOJowiecaa, 2015-01-08 10:39

Pozostało 580 znaków

2015-01-08 11:06

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

0

tablica struktur + fwrite całości.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-08 11:16

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

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();
}
edytowany 1x, ostatnio: furious programming, 2015-01-08 17:30

Pozostało 580 znaków

2015-01-08 11:19

Rejestracja: 5 lat temu

Ostatnio: 4 godziny temu

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

Pokaż pozostałe 7 komentarzy
Aż mi się przypomniała ta pani jak czytałem co ty piszesz http://pl.memgenerator.pl/mem[...]a-fota-hipnotajzing-pl-ffffff - Sopelek 2015-01-15 14:47
Jak Ci się nudzi, to zajmij się własnym życiem, bo ja nie mam czasu na marne prowokacje. - SPOJowiecaa 2015-01-15 14:56
No wiesz, ciężko jest zareagować nie żartując na to co tu wypisujesz i jak rzucasz się na wszystkich, którzy próbują ci coś uświadomić. - Sopelek 2015-01-15 15:30
To ja próbuję Tobie uświadomić, że to czy napisałbym to w C czy w C++ nie ma znaczenia... - SPOJowiecaa 2015-01-15 16:19
@SPOJowiecaa: piszcie sobie w czym chcecie, ale dany program pisze się albo w C, albo w C++. skoro nie ma znaczenia to zdecyduj - jeśli nie potrafisz podjąć decyzji tylko się denerwujesz, to się nie nadajesz. - Azarien 2015-01-15 17:10

Pozostało 580 znaków

2015-01-08 11:30

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

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

Dzięki wielkie ponownie za pomoc..... -> http://wklej.org/id/1587513/ zrobiłem tak. - SPOJowiecaa 2015-01-08 13:08
@SPOJowiecaa - takie informacje jak kody czy linki do kodów podawaj w postach; Nie każdy czyta komentarze, więc może tego nie zauważyć/pominąć/zignorować; - furious programming 2015-01-08 17:32

Pozostało 580 znaków

2015-01-08 14:54

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

0

Źle:

SPOJowiecaa napisał(a):

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2015-01-08 14:55
Przecież są też losowe przebiegi: <code=cpp>rand() % 10000 + 20000</code> - SPOJowiecaa 2015-01-08 17:33
Zrób porządną strukturę: struct { char reg[7]; unsigned dist; } tb[100]; - _13th_Dragon 2015-01-08 17:42

Pozostało 580 znaków

2015-01-10 14:25

Rejestracja: 8 lat temu

Ostatnio: 9 godzin temu

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;

Szacuje się, że w Polsce brakuje 50 tys. programistów
edytowany 1x, ostatnio: vpiotr, 2015-01-10 14:27

Pozostało 580 znaków

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