Structure yapısıyla birlikte dizi kullanıyorum. Char kullanarak isim almasını istiyorum, float kullanarak vize notu girmesini istiyorum vs ve for döngüsünde her öğrenci için ayrı ayrı uyguluyo program. Sorunum şu ki scanfle isim aldığımda boşluk olursa arasında sürekli alttaki while döngüsünün içindeki yazıyı yazdırıyo sayfalarca. Biraz bakındım gets kullanın demiş;
Bu şekilde kullandığımdaysa gets'i program görmüyo ve direk vize notunu istiyo. Yazımda mı bi hata var yoksa structure yapısıyla mı böyle kullanılmıyo anlayamadım. İsim girerken boşlukta koyabilmesi için kullanıcının ne yapmam gerekir, ne önerirsiniz?
cwr
kullanıcısına yanıt
fgetsle denediğimde de aynı olay oluyo ya hani direk öğrenci adını giriniz diyo yanına da vizeyi giriniz yazıyo hiç istemiyo değer
quote:
Orijinalden alıntı: tes1907
fgetsle denediğimde de aynı olay oluyo ya hani direk öğrenci adını giriniz diyo yanına da vizeyi giriniz yazıyo hiç istemiyo değer
Atma imkanin varsa programi atsana direkt inceleyeyim
Denedim ama yine aynı sonucu verdi. En son çare olarak Adi Adi2 ve Soyadi şeklinde ayırayım dedim. Eğer ikinci adı yoksa . giriniz diyip en sona
if(deger[n].Adi2 == '.'){ ... } şeklinde yapayım dedim ama o da olmadı . olsa da değer if'in içine girmedi bi türlü. Başka aklınıza gelen bi yol yok mudur ya?
Özür dilerim aklım başka yere kaymış hatalı cevap o.
Ogrenci adini girin'i yazdirdigin printf'den once bir adet getchar() koy, ogrenci adini da atadigin scanf'i asagida belirttigim sekilde duzelt. Bu sekilde calismasi lazim;
Çok teşekkürler ya çalıştı, bu yazdığın şekilde scanf denemiştim ama getchar koymamıştım. Tam olarak olayı nedir onu da açıklarsan çok sevinirim?
cwr
kullanıcısına yanıt
Hocam çok sağ olun saatlerce buna uğraştım gets kullanınca oluyor ama soruda c99 da mı öncesinde mi ne gets çalışmadığı için geçersiz kabul ediyor sırf size teşekkür etmek için hesap açtım :D
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme