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 kullanabilirsin char stringarray[25] ; scanf("%s",&stringarray); gets ile ilgili hatayı söylersen yardımcı olabilirim.
 
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.
 
İfadeler: AHT
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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…