16 Aralık 2013 Pazartesi

C Konsol Uygulamalar Metin Şifreleme



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;
}  





Etiketler

Array (9) bool (3) break (1) BubbleSort (1) C (23) char (4) Char Sınıfı (1) conio.h (5) Console (4) Dizi (1) Diziler (11) Döngüler (24) File Sınıfı (1) Fonksiyon (3) For (12) Function (2) Game (1) Getch (1) gets (1) if-else (6) if-else örnekleri (15) int (8) Konsol (16) Konsol Okuma (16) Konsol Yazdırma (17) Matematik (14) Oyun (1) Pointer (2) printf (9) scanf (8) Sort (1) stdio.h (10) stdlib.h (8) strcpy (1) String (1) string.h (2) Swap (1) Switch Case (3) time.h (1) while (5)