keremdogan1
Centipat
- Katılım
- 17 Temmuz 2022
- Mesajlar
- 2
Daha fazla
- Cinsiyet
- Erkek
Windows 11 üzerinden Dev-C++ kullanıyorum ve kodum C dilinde.
Aşağıdaki kodu yazdığım zaman setlocale(LC_CTYPE, "tr_TR.UTF-8") NULL döndürüyor ve notlarımı görüntülediğimde türkçe karakterlerin doğru görüntülenmediğini görüyorum.
Kodum şu şekilde:
notdefteri.c de aşağıdaki gibi:
Örnek bir girdiyi ekran görüntüsü alarak gösterdim.
Aşağıdaki kodu yazdığım zaman setlocale(LC_CTYPE, "tr_TR.UTF-8") NULL döndürüyor ve notlarımı görüntülediğimde türkçe karakterlerin doğru görüntülenmediğini görüyorum.
Kodum şu şekilde:
C:
#include <stdio.h>
#include <locale.h>
#include "notdefteri.c"
int main() {
setlocale(LC_CTYPE, "Turkish");
int secim;
char note[100];
char not_adi[100];
while (1) {
printf("1. Not Ekle\n");
printf("2. Notları Görüntüle\n");
printf("3. Çıkış\n");
printf("Seçiminizi girin: ");
scanf("%d", &secim);
switch (secim) {
case 1:
if (setlocale(LC_CTYPE, "tr_TR.UTF-8") == NULL) {
printf("Yerel ayarlar değiştirilemedi\n");}
printf("Not ismi girin: ");
scanf(" %[^\n]", not_adi);
not_adi_ekle(not_adi);
printf("Not girin: ");
scanf(" %[^\n]", note);
not_ekle(note);
break;
case 2:
notlari_goruntule();
break;
case 3:
return 0;
default:
printf("Geçersiz seçim\n");
}
}
}
notdefteri.c de aşağıdaki gibi:
C:
#include <stdio.h>
#include <string.h>
#define MAX_NOTLAR 100
struct Not {
char ad[100];
char icerik[100];
};
struct Not notlar[MAX_NOTLAR];
int not_sayisi = 0;
void notlari_kaydet() {
FILE *dosya;
int i;
dosya = fopen("notlar.txt", "a+");
if (dosya == NULL) {
printf("Dosya açılamadı\n");
return;
}
for (i = 0; i < not_sayisi; i++) {
fprintf(dosya, "%s\n%s\n", notlar[i].ad, notlar[i].icerik);
}
fclose(dosya);
}
void notlari_yukle() {
FILE *dosya;
char ad[100];
char icerik[100];
dosya = fopen("notlar.txt", "r");
if (dosya == NULL) {
return;
}
not_sayisi = 0;
while (fscanf(dosya, "%99[^\n]\n%99[^\n]\n", ad, icerik) == 2) {
strcpy(notlar[not_sayisi].ad, ad);
strcpy(notlar[not_sayisi].icerik, icerik);
not_sayisi++;
}
fclose(dosya);
}
void not_adi_ekle(char *not_adi) {
if (not_sayisi == MAX_NOTLAR) {
printf("Not defteri dolu\n");
return;
}
strcpy(notlar[not_sayisi].ad, not_adi);
}
void not_ekle(char *note) {
if (not_sayisi == MAX_NOTLAR) {
printf("Not defteri dolu\n");
return;
}
strcpy(notlar[not_sayisi].icerik, note);
not_sayisi++;
notlari_kaydet();
}
void notlari_goruntule() {
int i;
notlari_yukle();
for (i = 0; i < not_sayisi; i++) {
printf("%d. %s: %s\n", i + 1, notlar[i].ad, notlar[i].icerik);
}
}
Örnek bir girdiyi ekran görüntüsü alarak gösterdim.
Dosya Ekleri
Son düzenleyen: Moderatör: