Neden Sonsuz Döngüye Giriyor ?
-
do
2
{
3
fflush(stdin);
4
printf(
"\nSayiyi Ve Ismi Giriniz: "
);
5
scanf(
"%d%c"
,&sayi,isim);
6
fprintf(cptr,
"%d %c\n"
,sayi,isim);
7
}
8
while
(sayi!=0)
fflush ı silince neden sonsuz döngüye giriyor ? sonuçta sayi sıfıra eşit değilse 2. kere döndüğünde sayi ve ismi sorup beklemesi gerekmez mi ?
-
edit//
zeybekustasi tarafından 16/Mar/13 19:39 tarihinde düzenlenmiştir -
up-düllah
-
while sonuna ; koymadıgından olabilir mi.
onunla alakası olmayabilir ama syntax hatası var gibi geldi, denemek icin bir IDE yok su an.
Andrei tarafından 16/Mar/13 20:45 tarihinde düzenlenmiştir -
do while yapmışsın while'a geçmeden önce do'daki koşulu yapar ondan olmasın
Cradex tarafından 16/Mar/13 21:11 tarihinde düzenlenmiştir -
#include <stdio.h> #include <stdlib.h> int main() { int sayi; char isim[30]; FILE *cptr; if((cptr=fopen("dosya1.txt","w"))==NULL) printf("\n Dosya Acilamadi"); else { printf("dosya sonu icin 0 giriniz\n"); do { fflush(stdin); printf("\nSayiyi Ve Ismi Giriniz: "); scanf("%d%c",&sayi,isim); fprintf(cptr,"%d %c\n",sayi,isim); } while(sayi!=0); fclose(cptr); } return 0; }
-
Soyle yapsan olmazmi?
int i = 0;
do
{
if(i < 2)
{
printf(
"\nSayiyi Ve Ismi Giriniz: "
);
scanf(
"%d%c"
,&sayi,isim);
fprintf(cptr,
"%d %c\n"
,sayi,isim);
}
i++;
}
-
Giriş akışlarını fflush ile boşaltmamalısınız. Büyük ihtimalle giriş akımında karakter kalıyordur, farklı şekilde boşaltın. Örneğin
while( (getch() == '\n') ){;} ile.
-
6. kez konuya yazmaya çalışıyorum defalarca ip güncellenip durdu.
demek istediğim şu biri fflush stdin siz bu döngünün neden sonsuz döngüye giriyor ??
-
Sayiyi niye arttirmiyorsun/eksiltmiyorsun?
Diyelimki kullanici 3 girdi.
3 != 0 oldugu icin dongu sonsuza kadar devam edecektir.
-
zeybekustasi bunu yazdı
6. kez konuya yazmaya çalışıyorum defalarca ip güncellenip durdu.
demek istediğim şu biri fflush stdin siz bu döngünün neden sonsuz döngüye giriyor ??
hocam bunun sebebi scanf in çalışma prensibi ile ilgili, buffer i boşatlman gerekiyor, zaten yeni harman söylemiş
http://www.pcnet.com.tr/forum/programlama-dilleri/299173-c-de-fflush-stdin-nedir-ne-ise-yarar.html bu linkte detaylı bi açıklama var, sanırım aradığın yanıt bu