witam mam zrobic program na zaliczenie mianowicie szyfrowanie cezara z zapisywaniem wyniku do pliku i pozniej mozliwoscia go otworzenia. Nie moge ruszyć z miejsca algorytm sam w sobie dziala zamienia wg algorytmu i zapisuje ale problem pojawil sie gdy chcialem zrobic zeby na poczatku byla mozliwosc wyboru:
- zaszyfrowanie i zapis
- odczyt z pliku i odszyfrowanie
wstawilem instrukcje warunkowa i... nic program traci swoje działanie. Pisze program w CodeBlocks
tu daje kod :
#include <stdio.h>
#define MAX 100
int main ()
{
int i,menu;
char tab[MAX];
printf("Chcesz zaszyfrowac tekst i zapisac do pliku?, wybierz 1\n");
printf("Chcesz odszyfrowac tekst z pliku, wybierz 2\n");
printf("chcesz zakonczyc prace programu wybierz 3");
scanf("%d",&menu);
if(menu==1)
{
printf("Podaj tekst do zaszyfrowania\n");
gets(tab);
for (i=0;i<MAX;i++)
{
if ((tab[i]>='A')&&(tab[i]<='Z'))
tab[i]=(65+(tab[i]-62)%26);
else
if (tab[i]>='a' && tab[i]<='z')
tab[i]=(97+(tab[i]-94)%26);
}
printf("zaszyfrowany tekst, ktory zostal zapisany to: %s\n",tab);
char nazwap[]="cezar.txt";
FILE *fp;
// otwarcie pliku do zapisu
fp=fopen(nazwap, "wt");
if(fp==NULL)
{
printf("Blad przy tworzeniu pliku !\n");
return 1;
}
if(fputs(tab, fp) == EOF)
{
printf("Wystapil blad przy zapisie do pliku %s !\n", nazwap);
fclose(fp);
return 1;
}
fclose(fp);
}
/*for(i=0;i<MAX;i++)
{
if ((tab[i]>='A')&&(tab[i]<='Z'))
tab[i]=65+(tab[i]-42)%26;
else
if (tab[i]>='a' && tab[i]<='z')
tab[i]=(97+(tab[i]-74)%26);
}
printf("\n po odszyfrowaniu otrzymujemy: %s :",tab);*/
return 0;
}
w komentarzu algorytm odszyfowywania ale na razie na to nie trzeba zwracac uwagi tylko na to dlaczego nie można dac if/switch
Czekam na jakies wskazówkii