Merhaba arkadaşlar programcılığa yeni başladım denebilir. Son yazdığım programda nedenini anlayamadığım bir sorunla karşılaşıyorum.
Scanf ile putchar() komutlarının işlevleri aynı diye biliyorum ama programı scanf ile yazdığım zaman doğru şekilde çalışmıyor. Nerde hata yapıyorum tam olarak ?
if (deger == 'a') { printf("\nDogru cevap!\n\n"); }
else { printf("\nYanlis cevap!\n\n"); } }
Yazdığım kod bu şekilde. Bu sorunsuz şekilde çalışıyor ancak deger = getchar(); kısmını scanf_s("%c", deger); şeklinde değiştirdiğim zaman klavyeden a tuşunu da girsem yanlış cevap diyor.
Bir başka sorum büyük a karakterini A yı da tanımasını sağlamaya çalışıyorum ama onda da sorun yaşıyorum.
if li kısmı if (deger == 'a' || 'A') şeklinde değiştiriyorum bu sefer de klavyeden hangi tuşu girersem gireyim doğru cevap diyor
Edit : Bu arada vs 2013 kullanıyorum
< Bu mesaj bu kişi tarafından değiştirildi mX-L4S3R -- 23 Ekim 2015; 21:32:58 >
yaparsan sorun kalmaz.& deger demek deger değişkeninin adresini parametre olarak geçiyorsun.
if(deger =='a' || deger=='A') yapmalısın.Senin yazdığının kabul edilme sebebi ise C dili 0 dışında herşeyi doğru kabul eder.Bakıyor deger değişkenine a değil,veya diyor diğer kısma geçiyor bakıyor 'A' var,direk doğru kabul eder.
scanf_s fonksiyonunu daha önce görmemiştim büyük ihtimalle Microsoft'un yazdığı fonksiyonlardan biridir.Başka parametre alması gerekiyor olabilir,referansa bakarsan anlarsın.Onun yerine scanf kullan direk bakalım,çalışıyor mu.
VS 2013 scanf yerine scanf_s kullanmaya zorluyor. Kullanmadığım zaman program error verip çalışmıyor.
Error 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
Scanf ile putchar() komutlarının işlevleri aynı diye biliyorum ama programı scanf ile yazdığım zaman doğru şekilde çalışmıyor. Nerde hata yapıyorum tam olarak ?
Yazdığım kod bu şekilde. Bu sorunsuz şekilde çalışıyor ancak deger = getchar(); kısmını scanf_s("%c", deger); şeklinde değiştirdiğim zaman klavyeden a tuşunu da girsem yanlış cevap diyor.
Bir başka sorum büyük a karakterini A yı da tanımasını sağlamaya çalışıyorum ama onda da sorun yaşıyorum.
if li kısmı if (deger == 'a' || 'A') şeklinde değiştiriyorum bu sefer de klavyeden hangi tuşu girersem gireyim doğru cevap diyor
Edit : Bu arada vs 2013 kullanıyorum
< Bu mesaj bu kişi tarafından değiştirildi mX-L4S3R -- 23 Ekim 2015; 21:32:58 >