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?
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?
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;
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
(Programın bi kısmının kodu)
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?