Aynen katılıyorum (:

veya *
scanf("%c", &yazi2);*
yerine
*scanf("\n%c", &yazi2);*
de sorunu çözüyor.

Keza ilk verilen çözümdeki "*workaround*"lar gibi pointerın işaret ettiği
bölgelere overloadlar yaptırmaya kalkışmak bir süre sonra saç baş
yoldurabilir hale geliyor.

13 Nisan 2012 00:11 tarihinde Husrev Ozayman <[email protected]> yazdı:

> On Thu, Apr 12, 2012 at 11:55 PM, necati vardar <[email protected]>
> wrote:
> > scanf("%c", &yazi2);             // Her ne hikmetse burada beklemiyor!!!!
> >
> > yerine
> >
> > scanf("%d", &yazi2);             // Her ne hikmetse burada beklemiyor!!!!
> >
> > değiştirsen sorunsuz çalışıyor ;)
>
> Böyle yaparsanız çalışabilir, ama bu yapılması gereken şey değil.
> çünkü %d 10 tabanında sayı okumak için. Bunu bir char'a yazmak için
> kullanırsanız ve kullanıcı 45343 yazarsa taşma olur.
>
> Neyse, problem şurada: pek sevgili c geliştiricilerinin yazılımcıları
> şarşırtmak için yaptığı sevimliliklerden biri bu. Siz scanf("%d",
> &sayi2); dediğinizde oradan bir sayı bekliyorsunuz. ama ekranda sirf
> bir sayı vermiyorsunuz. aynı anda bir de \n karakteri veriyorsunuz.
> tam da o sırada bir karakter okumaya çalışan scanf("%c", &yazi2);
> çalışıyor ve o char olarak yeni satır karakterini alıyor.
>
> (Böyle şeyler sayesinde hiç sıkılmazsınız C yazarken, her arn bir
> heyecan, yine umulmadık ne çıkacak diye :) )
>
> Çözmek için bir geçici char tanımlayıp, son okuduğunuz tam sayıdan
> sonra onun içine bir char okuyabilirisiniz. ardından da gerçekte
> okumak istediğiniz şeyi okursanız probleminiz hoş görünmeyen bir
> şekilde de olsa çözülmüş olacaktır.
>
> Hüsrev.
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap