KONU : C Konsol Uygulamalar - c konsolda metin şifreleme uygulaması
ETİKETLER: c şireleme - c şifre - c şifre koyma - c şifre işlemi - c metin şifreleme 
  
 
 
 
#include < stdio.h >
#include < conio.h >
int main()
{
 FILE *fptr1;
 FILE *fptr2;
 int sec;
 //şifrelenmek istenen metinin bulunduğu dosya
 char dosya_adi1[50] ="TestFile1.txt";
 //şifrelenen metnin yazılacağı dosya
 char dosya_adi2[50] ="TestFile2.txt";
    //dosyalardan karakterleri bire birer çekerken
 //kullanılacak değişkeler
 char temp, son;
basla:
 printf("1 - Sifrele\n2 - Sifre coz\n3 - Cikis\n\nSeciniz ? : ");
 scanf("%d", &sec);
 switch(sec)
 {
 case 1://Şifrelem seçeneği seçilmiş ise
  {
   //şifrelenecek metnin bulunduğu dosyayı aç
   if((fptr1 = fopen(dosya_adi1, "r")) == NULL)
   {
    printf("Dosya bulunamadi!\n\n-------------\n\n");
    goto basla; //yeniden başa dön
   }
   else //Eğer dosya açılmış ise dosyayı işle 
   {
    int i=0;
    fptr2 = fopen(dosya_adi2, "w");
    while(!feof(fptr1)) //sayfa sonuna gelene kadar devam et
    {
     //Eğer alınan data bir karakter ise bunu temp e ata
     if(fscanf(fptr1, "%c", &temp)==1)
     {
                        //şifrelemede noktalama işareti istenmiyor 
      //Bundan dolayı sadece harf kullanılacak
      if (temp == 'a' || temp == 'z' || temp == 'A' || 
      temp == 'Z' || temp == ' ' || temp == '\n' || temp == '\r')
       son = temp;
      else
      {
       //eğer karakter harf ve a ile z arasında ise
       //bu değeri 1 ile şifrele
       son = (temp ^ 1);
      }
                        //şifrelenen karakteri ikinci dosyaya yaz
      fprintf(fptr2, "%c", son);
     }
    }
    // iki dosyayı da kapat
    fclose(fptr1);
    fclose(fptr2);
    //konsola işlem tamamlandı yaz
    printf("Sifreleme tamamlandi.\n\n-------------\n\n");
   }
   //yeniden başa dön
   goto basla;
   break;
  }
 case 2://Eğer işlem şifre çözme ise
  {
   //şifrelenmiş olan metin al
   if((fptr1 = fopen(dosya_adi2, "r")) == NULL)
   {
    //dosya bulunamadıya konsola dosya bulunamadı yaz
    printf("Dosya bulunamadi!\n\n-------------\n\n");
    goto basla; //tekrar basa dön
   }
   else //Eğer şifrelenmiş dosya bulunduysa
   {
    //şifresi çözünen metnin yazılacağı dosyayı aç
    fptr2 = fopen(dosya_adi1, "w");
    while(!feof(fptr1))//sayafa sonuna kadar git
    {
     //dosyadan okunan karakter sayısı bir ise
        if(fscanf(fptr1, "%c", &son)==1)
     {
                        //şifrelemede noktalama işareti istenmiyor 
      //Bundan dolayı sadece harf kullanılacak
      if (son == 'a' || son == 'z' || son == 'A' || 
     son == 'Z' || son == ' ' || son == '\n' || son == '\r')
       temp = son;
      else
      {
       //şifrelenmiş datayu tekrar eski haline getir
       temp = (son ^ 1);
      }
      //şifresi çözünen metni sayfaya yaz
      fprintf(fptr2, "%c", temp);
     }
    }
    //açık olan iki dosyayı kapat
    fclose(fptr1);
    fclose(fptr2);
    //konsola şifre çözme işlemi tamamlandı yaz
    printf("Sifre cozme tamamlandi.\n\n-------------\n\n");
   }
   goto basla; //tekra başa dön
   break;
  }
 case 3: //Eğer çıkış seçilmiş ise
  {
   return 0; //sıfır dön ve switch den çıksın
   break;
  }
 default:
  {
   //bir hata olmuş ise (yanlış değer girilmiş ise)
   printf("\nYanlis giris yaptiniz.\n\n-------------\n\n");
   goto basla;
  }
 }
 getch();
 return 0;
}  
 
Hiç yorum yok:
Yorum Gönder
Hatalı linkleri yorum yazarak bildirin