Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
7
Cevap
3085
Tıklama
0
Öne Çıkarma
Scanf boşluk sıkıntısı C
T
10 yıl
Yüzbaşı
Konu Sahibi

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ş;

    struct OGRENCI{ 
int No;
char Adi[22];
float Vize;
float Final;
float Odev1;
float Odev2;
float Devamsizlik;
float NotOrtalamasi;
char Durum[6];
int DevamsizlikYuzdesi;
} deger[n];

for(int i=0;i<n;i++) {
printf("Ogrenci adini giriniz: "); gets( deger[i].Adi );
printf("Ogrenci vize notunu giriniz: "); scanf("%f",&deger[i].Vize);
while(deger[i].Vize<0 || deger[i].Vize>100){
printf("Lutfen vize notunu 0 ile 100 arasinda seciniz.\n");
scanf("%f",&deger[i].Vize);}
}

(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?