Ben de hata goremedim. Ancak bazen derleyiciden derleyiciye degisebiliyor 16. satirdaki scanfdeki %s yi %c yapin belki sizde de duzgun calisabilir. Ancak pek de bir sey degismez bence. Handi derleyiciyi kullaniyorsunuz?
Kodda hata var tabii ki nasıl yok? adam char tanımlamış char 1 byte yer tutar, scanf ile string input alıyor ve char değişkenine yazıyor, konsoldan + ve enter e basıyorsun, scanf iki karakter girdi alıyor, dolayısıyla da stack üzerinde fazladan bir byte başka yere yazılıyor bu da sonuc değişkenin tutulduğu adrese denk geliyor muhtemelen.
islem adlı parametresini okumak için %c şeklinde parametresi tanımlanması gerek. Ancak %c dönüştürme belirteci, baştaki boşlukları otomatik olarak atlamaz, bu nedenle giriş esnasında (misal önceki bir girişteki int değerleri...) başıboş bir yeni satır varsa, scanf çağrısında onu hemen tüketir.
Sorunu çözmenin bir yolu, biçim dizesindeki dönüştürme belirtecinden önce bir boşluk bırakmaktır: scanf(" %c", &islem);
Biçim dizesindeki boşluk, scanf'e baştaki boşlukları atlamasını söyler ve boşluk olmayan ilk karakter %c dönüştürme belirteci ile okunur.
Kodda hata var tabii ki nasıl yok? adam char tanımlamış char 1 byte yer tutar, scanf ile string input alıyor ve char değişkenine yazıyor, konsoldan + ve enter e basıyorsun, scanf iki karakter girdi alıyor, dolayısıyla da stack üzerinde fazladan bir byte başka yere yazılıyor bu da sonuc değişkenin tutulduğu adrese denk geliyor muhtemelen.
islem adlı parametresini okumak için %c şeklinde parametresi tanımlanması gerek. Ancak %c dönüştürme belirteci, baştaki boşlukları otomatik olarak atlamaz, bu nedenle giriş esnasında (misal önceki bir girişteki int değerleri...) başıboş bir yeni satır varsa, scanf çağrısında onu hemen tüketir.
Sorunu çözmenin bir yolu, biçim dizesindeki dönüştürme belirtecinden önce bir boşluk bırakmaktır: scanf(" %c", &islem);
Biçim dizesindeki boşluk, scanf'e baştaki boşlukları atlamasını söyler ve boşluk olmayan ilk karakter %c dönüştürme belirteci ile okunur.
Teşekkürler. Bir sorum olacak size %c hangi parametre için kullanılıyordu? Gördüm hatırlamıyor muyum emin değilim yarın sınav var kafam çorba gibi oldu.