Operacje na plikach i strukturach - problem z zapisem do pliku.

0

Witam mam napisać program który po wprowadzeniu danego klawisza wykona daną operację. Dokładny opis za co odpowiada dana litera w programie. Na razie napisałem tylko dwie funkcję ale już przy drugiej (dopisz) mam problem. Mianowicie program wywala się przy zapisywaniu do pliku. Poniżej kod, proszę o pomoc tylko z funkcją dopisz resztę będę sam próbował napisać. Z góry dzięki.

#include <stdio.h>
#include <stdlib.h>
 
void nowy (void);
void dopisz(void);


struct osoba
	{
		char imie[20];
		char nazwisko[20];
		int numer;
	}czlowiek;

FILE *plik; 

main()
{
	
	char znak;
	system ("chcp 1250");

	do
	{
	printf("podaj znak\n n-nowy \n d-dopisz\n u-usuń osobę (podaj numer)\n w-wyświetl zawartość całego pliku \n z-wyjdź\n");
	fflush(stdin);
	znak=getchar();
	switch (znak)
	{
	case 'n':
		nowy();
		break;

	case 'd':
		dopisz();
		break;

	case 'u':

		break;
	case 'w':

		break;
	case 'z':

		break;
	}
	}
	while (znak != 'q');

}

void nowy (void)
{
	//FILE *plik; 
	plik=fopen("c:/onp/lab6.txt", "w+");
	printf("\nplik został utworzony");
	fclose(plik);
}

void dopisz(void)
{
	plik=fopen("c:/onp/lab6.txt", "a");
	printf("podaj imie \n");
	scanf("%s", czlowiek.imie);
	printf("podaj nazwisko \n");
	scanf("%s", czlowiek.nazwisko);
	printf("podaj numer");
	scanf("%d", czlowiek.numer);
	fwrite(&czlowiek,sizeof(struct osoba),1,plik);
	fclose(plik);
}
0

Chyba będziesz musiał zapisać osobno nazwisko, imię oraz nr, pamiętając o separatorach między nimi

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