[Çözüldü] Harfler neden böyle gözüküyor?

Başlatan Sh4oTT, 05 Ocak 2016 - 20:25:12

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

Sh4oTT

Arkadaşlar aşagıdaki kodu yazdım derledim calıstırdım fakat dosyanın ıcındekı harfler normal gozukmuyor sebebi nedir kodda bir sıkıntımı var? Yoksa metin editöründemi bir sorun var?

Programın amacını da acıklıyayım 4 haneli sifreler olusturup bir .txt dosyasına kaydediyor.


#include <stdio.h>

char sifre[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

int i=0, j=0, k=0, l=0;

char dizi[4];

void sifreler () {

FILE * pt= fopen ( "SOZLUK.txt", "w+");

for ( i=0; i<26; i++ ) { dizi[0]=sifre[i];

     for ( j=0; j<26; j++ ) { dizi[1]=sifre[j];
     
          for ( k=0; k<26; k++ ) { dizi[2]=sifre[k];
         
               for ( l=0; l<26; l++) { dizi[3]=sifre[l];
               
               fprintf(pt, "%s,", dizi);
               
               }
          }
     }
}

fclose(pt);

}


int main() {

printf("Sifreler olsuturuluyor...\n");

sifreler();

return 0;

}




Ekran görüntüsü:



plazma

Kodlama UTF-8 mi, editörü değiştirip deneyein bence birde atom yada sublime de aynı sorunu yapacakmı.

Sh4oTT

@plazma mousepad ile actıgımda ekrandaki görüntü geliyor. gedit ve notepad ile actıgımda ise hicbir şey göstermiyor. Libreoffice Writer ile acabildim yazıları gosterdi.
Digerleriyle acılmamasının sebebi nedir acaba merak ettim dogrusu UTF-8 olduguna nerden bakıyoruz?

ShangriLa

dizi[4] gecerli bir string degil, C de her string \0 karakteriyle biter. Mesela AAAA stringi aslinda C'de AAAA\0'dir. dizi boyutunu 5 e cikartip son karakteri \0 yapmalisin oncelikle.

Editorlerin oyle gostermesinin nedeni de cok buyuk tek satirlik dosya olmasindan kaynaklaniyor olabilir. Virgulle ayirmak yerine her bir diziyi yeni satira yazarsan sorun kalmaz bence.
Ubuntu Mate Trusty

Reverser

karakter kodlamasını "ISO-8859-9" yapmayı dene.

XFCE ROCKS !
Powered by Thunar & XFWM4



Sh4oTT

#5
Alıntı yapılan: ShangriLadizi[4] gecerli bir string degil, C de her string \0 karakteriyle biter. Mesela AAAA stringi aslinda C'de AAAA\0'dir. dizi boyutunu 5 e cikartip son karakteri \0 yapmalisin oncelikle.

Editorlerin oyle gostermesinin nedeni de cok buyuk tek satirlik dosya olmasindan kaynaklaniyor olabilir. Virgulle ayirmak yerine her bir diziyi yeni satira yazarsan sorun kalmaz bence.
Haklısınız hocam boyle kullana kullana boyle alısmısız :) Bu final sorusuydu boyle yazdım eve gelınce denedım ekran cıktısı boyle olunca korktum acıkcası yanlısmı yaptım dıyerekten inşallah sorun cıkmaz notumuzu kırmaz hoca :)


Alıntı yapılan: Reverserkarakter kodlamasını "ISO-8859-9" yapmayı dene.
Hocam cahilligime verin "ISO-8859-9" nerden sececem?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 06 Ocak 2016 - 22:43:22

@ShangriLa, hocam dediginiz gibi bir alt satira yazdirinca sorun kalmadi duzgun gosterdi teşekkür ederim :)

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4