C de Gets Fonksiyonu Çalışmıyor?

therocker13

Hectopat
Katılım
15 Ağustos 2014
Mesajlar
6
Daha fazla  
Cinsiyet
Erkek
Kullanıcıdan alınan bir karakter dizisi üzerinde işlem yapan bir program üzerinde çalışıyorum. Birden fazla kelime girişi olabileceği için scanf yerine gets kullandım. lakin çalışma sırası gets'e gelince karakter istemeden yani gets fonksiyonu çalışmadan sonraki işlemler gerçekleşiyor. Nedeni ne olabilir? Çözüm olarak kullanılabilecek bir fonksiyon var mıdır?
 
scanf boşluk gördükten sonra yazılan kelimeleri almadığı için gets kullandım. Hata şu: benim kelime girmemi beklemeden sonraki işlemlere geçiyor. derlemede bir hata yok. hatayı çalışmada veriyor.
 
Güvenlik açısından "gets" fonksiyonunu kullanmayiniz. Hata muhtemelen şu: Girdiğiniz string hafizada ayirdiğiniz stringten büyük bu yüzden sorun yaratiyor ve ram' de izini olmadiği bir yere bir şeyler yazmaya çalişiyor. Bunun yerine belirlediğiniz karakter sayisinca giriş yapılabilen fgets( char *str, int girilecek_maksimum_karakter sayisi, stdin ).
Öte yandan "scanf" ' in boşluğu görmesini istemiyorsaniz şunu deneyebilirsiniz:
scanf( " %s", string ); Dikkat edin %s' den önce bir boşluk birakacaksınız.
Ayrica her zaman için kaynak kodu paylaşırsanız daha isabetli ve daha çabuk yardim alabilirsiniz.
 
Uyarı! Bu konu 11 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı