Witam, jestem dopiero początkujący i na mojej drodze pojawił się spory problem.
Chcę wykonać program, który posiada MENU w takiej o to formie:
MENU:
1 - Wprowadzenie danych
2 - Zapisanie danych na dysku(w notatniku)
3 - Odczyt danych(z notatnika)
4 - Jakiś dodatkowy bajer
5 - Zakończ program
Na chwilę obecną poradziłem sobie z punktem 1, 3, 5. O ile punkt 4 mogę opuścić(brak pomysłu, może Wy coś polecacie?) to punkt 2 jest obowiązkowy. O ile plik się tworzy w podanym miejscu to robi się pusty. Po wykonaniu każdej czynności ekran się czyści, aby było przejrzyściej, czy to wyczyszczenie sprawi, że nie będę mógł zapisać danych?
O to kod programu:
# include <iostream>
# include <stdlib.h>
# include <conio.h>
# include <stdio.h>
#include <string.h>
int main()
{
struct baza
{
char imie[100];
char nazwisko[100];
int wiek;
};
int n, ile;
char wybor;
struct baza katalog[100];
for (; ;)
{
printf ("MENU: \n");
printf ("-----------------------------------\n");
printf ("1 - Wprowadzenie danych\n");
printf ("2 - Zapisanie danych na dysku\n");
printf ("3 - Odczyt danych z dysku\n");
printf ("4 - wymysle cos\n");
printf ("5 - Zakoncz program\n");
wybor=getch();
switch(wybor)
{
case '1': //WPROWADZENIE DANYCH
{
printf ("\nPodaj liczbe osob aby wypelnic katalog: ");
scanf ("%d",&ile);
for ( n=0; n<ile; n++)
{
printf ("Podaj imie: ");
scanf ("%s", &katalog[n].imie);
printf ("Podaj nazwisko: ");
scanf ("%s", &katalog[n].nazwisko);
printf ("Podaj wiek: ");
scanf ("%d", &katalog[n].wiek);
}
break;
}
case '2': // ZAPIS DO PLIKU
{
char baza[100];
FILE *f;
if ((f=fopen("D:/katalog.txt", "w"))==NULL)
printf("BLAD");
else
{
while (fscanf(f, "%s", n)!=EOF)
printf("%s\n", n);
}
fclose(f);
printf ("Dane zostaly zapisane w pliku katalog.txt na dysku D");
break;
}
case '3': // ODCZYT Z PLIKU
{
char n[100];
FILE *f;
if ((f=fopen("D:/katalog.txt", "r"))==NULL)
printf("\nBrak pliku, z ktorego mozna odczytac dane");
else
{
printf ("\n");
while (fscanf(f, "%s", n)!=EOF)
printf("%s\n", n);
printf ("\nWczytanie danych wykonane z powodzeniem");
}
fclose(f);
break;
}
case '4': // TU COS WYMYSLE
{
printf ("Tu cos wymysle");
break;
}
case '5': // ZAKONCZENIE PROGRAMU
exit(0);
break;
default:
printf ("Prosze wybrac sposrod numerow dostepnych w MENU!");
break;
}
getch();
system("cls");
}
return 0;
}