zapis odczyt do txt

0

Witam, chcialbym dowiedziec sie, gdzie jest blad i czy to w ogóle jest dobrze?
Zapis do pliku dziala prawidlowo, natomiast odczytac go i zapisac do bazy nie jestem w stanie

void ZAPIS(T_baza *baza, int rozmiar)
{
	FILE *baza_samochodow;
	baza_samochodow = fopen ("C:\\baza_samochodow.txt", "wt");
	
	for (int i=0; i<rozmiar; i++) 
		fprintf(baza_samochodow, "%d %s %s %s %s %s %d \n", 
		baza[i].pozycja, 
		baza[i].nazwisko, 
		baza[i].imie, 
		baza[i].nr_rejestracyjny, 
		baza[i].marka, 
		baza[i].model, 
		baza[i].rok_produkcji);
	fclose(baza_samochodow);

	cout<<"Zapisano do C:\\baza_samochodow.txt.\n";

}

void ODCZYT(T_baza *baza, int rozm_bazy)
{
	FILE *baza_samochodow;
	baza[rozm_bazy];
	baza_samochodow = fopen ("C:\\baza_samochodow.txt", "rt");
	for (int i=0; (!feof(baza_samochodow)) && i<rozm_bazy; i++) 
		fscanf(baza_samochodow, "%d %s %s %s %s %s %d", 
		&baza[i].pozycja, 
		&baza[i].nazwisko, 
		&baza[i].imie, 
		&baza[i].nr_rejestracyjny, 
		&baza[i].marka, 
		&baza[i].model, 
		&baza[i].rok_produkcji);
	fclose(baza_samochodow);

	cout<<"Odczytano.\n";
} 
0

Nie wnikałem zbyt mocno w kod, ale:

&baza[i].imie

Jakiego typu jest imie? Jest to wskaźnik, więc ten & przed odwołaniem do pola oznacza wskaźnik na wskaźnik.

0
baza[rozm_bazy];

Co to ma robić? :-o

Pokaż jak używasz funkcji ODCZYT. Przesyłasz jej wskaźnik na zaalokowaną pamięć dla tej tablicy? Możesz też przesłać wskaźnik na wskaźnik tudzież referencję do wskaźnika aby pamięć alokować wewnątrz funkcji.

0
Endrju napisał(a)
baza[rozm_bazy];

Co to ma robić? :-o

Fakt, niepotrzebne to :)

struct T_baza 
{
	int pozycja;
	char nazwisko[30];
	char imie[30];
	char nr_rejestracyjny[10];
	char marka[30];
	char model[30];
	int rok_produkcji;
}; 
 	
case 5: ZAPIS(baza, wpis);	break;
case 6: ODCZYT(baza, rozm_bazy);	break;

Gdzie wpis to ilość aktualnie wypełnonej bazy.

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