Microsoft Visual Studio 2012 scanf,getch,fopen gibi fonksiyonlarda warning sorunu(güncelleme)

Merhaba arkadaşlar , https://gizemaldemir.wordpress.com/2013/12/06/microsoft-visual-studio-2012-scanf-ve-getch-security-sorunu/ yazımda visual’12 de scanf ve getch için verilen warningden nasıl kurtulacağımızdan bahsetmiştim. Scanf i scanf_s ; gectch i de _getch olarak yazmamız gerekiyordu. Ancak dosya işlemleri kullanarak c ile ilgili bir proje yaparken fopen gibi fonksiyonlarda da sıkıntı çıktığını gördüm. Bunun içinde bir çözüm var 🙂 Öncelikle oluşturduğumuz projenin cpp dosyası üzerine sağ tıklıyoruz. En aşagıda ‘properties’ yani özellikler kısmı var. Buraya tıklıyoruz.

properties1

 

Propertiese tıkladıktan sonra karşımıza şöyle bir pencere geliyor :

properties2

Burdan sol pencereden, c/c++ ı seçip gelen menuden ‘preprocessor kısmına tıklıyoruz. Sağ tarafta ‘Preprocessor Definitions ‘ kısmı var. Ve gördüğünüz üzere _MBCS;%(PreprocessorDefinitions) yazıyor. Tek yapmamız gereken o kutucuğa _CRT_SECURE_NO_WARNINGS yazmak. Sonra uygula ve tamam a basıyoruz. Artık hatalardan kurtulduk demektir 🙂 

properties3

Ek bir uyarı daha bende ‘flushall’ fonksiyonu da hata veriyor. Onu da _flushall kullanarak halledebiliyoruz. Yine getch içinde aynı şekilde _getch kullanmamız gerekiyor. Umarım faydalı olmuştur. İyi çalışmalar 🙂

Reklamlar

Microsoft Visual Studio 2012- ( scanf ve getch) Security Sorunu

Arkadaşlar başınıza geldi mi bilmiyorum ama visual’12 de scanf ve getch fonksiyonlarında sıkıntı yaşıyordum. Program doğru olmasına rağmen kodum çalışmıyor, error penceresinde scanf ve getch ile alakalı problem oluşuyordu. Bu konuyu araştırdım fakat Türkçe bir metin bulamadım. Bende çözümü sizlerle Türkçe olarak paylaşayım istedim 🙂 hata da belirtildiği gibi ya _CRT_SECURE_NO_WARNINGS ifadesini kütüphanelerin altında #define olarak tanımlıyoruz ki ben bu şekilde sorunu çözemedim. Ya da scanf’i ‘scanf_s’  , getch’i de  ‘_getch’ olarak kullanıyoruz. Böylece sorun çözülmüş oluyor. Bazı arkadaşlarda hata değilde uyarı olarakta çıkabiliyor. Hatalarda yapmanız gereken belirttiğim gibi. Benim sorunum bu şekilde çözüldü. Umarım işinize yarar 🙂Image

C dilinde basit ‘Banka Otomasyonu’

Merhaba arkadaşlar, sizlerle paylaşmak istediğim bir uygulamam var. Basit, başlangıç seviyesinde bir banka uygulaması. Algoritmalar ve Programlamalar dersi ilk ödevimdi. Uygulamamız şu şekilde işliyor. Kullanıcıdan kullanıcı adını istiyoruz siz TC kimlik numarasını da isteyebilirsiniz; kendi belirlediğimiz şifremizi istiyoruz ( isterseniz şifreyi de kullanıcıdan alabilirsiniz ben şifreyi kendim belirleyerek sisteme ek özellik katmak istedim.). Eğer şifre yanlış ise tekrar şifre sorgulaması yapılıyor. Doğru ise sisteme giriş yapılıyor. Sistemden beklenilenler para ekleme, para çekme, para transfer etme, kullanıcı çıkış yapmak istediği zaman çıkış işlemi yapılması. Ben ek olarak bakiye öğrenme de ekledim. Kodları yazmak ve derlemek için Microsoft Visual Studio ortamını kullanıyorum. Kaynak kodlara github hesabımdan ulaşabilirsiniz : https://github.com/GizemAldemir/C-Homework1/blob/master/BankApp .. Evet başlangıç olarak  kütüphanelerimizi  tanımlıyoruz. ‘conio.h’ı getch fonksiyonu için ; ‘windows.h’ ı sleep fonksiyonu için kullandım. Visual 2012 de her kullanıcıda olmamakla birlikte bir sorun var. Scanf ve getch fonksiyonlarında warning vermesi gerekirken error veriyor ve program çalışmıyor. Bunu önlemek için; scanf_s ve _getch şeklinde kullanıyoruz. Değişkenlerimizi ve kullanıcıya başta bir miktar para tanımlıyoruz. Username ve password sorgulattıktan sonra koşul geliyor. Şifreyi kontrol ediyor. Doğrulanana kadar istiyor. Şifre doğrulandıktan sonra gerçeklik hissi yaratsın diye sleep komutuyla 3 saniye bekleme yapılıyor ve menu karşımıza çıkıyor. 1)Bakiye sorgulama , 2)Para yatırma, 3) Para Çekme , 4)Para Transferi, 5)Çıkış işlemi. Sonrasında yapacağınız işleme göre seçim yapıyorsunuz ve sistemden çıkılıyor. Menuyu her defasında tekrar takrar çağırmadım isterseniz ekleyebilirsiniz. Onun dışındaki kontrol işlemleri yapılmış durumda. Sormak istediklerinizi, eleştirilerinizi, önerilerinizi buradan veya iletişim kısmındaki bağlantılardan iletebilirsiniz. Umarım işinize yarar. İyi çalışmalar 🙂   Yeni yazımda görüşmek üzere 🙂 wp1

wp2

wp3

wp4wp5