Şimdi Ara

C ' de fonksiyonlarla ilgili acil bir soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
911
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar şimdi bir fonksiyonum var

    int read(char *oprtr, int *oprnd)
    {
    printf("Operator : ");
    scanf("%c",oprtr);
    printf("Operand : ");
    scanf("%d",oprnd);

    }

    şimdi bu fonksiyonu while döngüsü içinde çağırdığımda sadece 1 defa değer alıyor 2. defa alamıyorum.

    örnek bir while döngüsü :

    while(1)
    {
    read(&oprt,&oprn);
    }

    burda sonsuz döngü görünüyor ama kendi programımda sonsuz değil.

    nerde yanlış yapıyorum yardımcı olur musunuz?



    < Bu mesaj bu kişi tarafından değiştirildi Necron -- 13 Mart 2008; 0:19:22 >



  • bi kaç kez girilmesini istersen şöyle bişi olabilir ;

    while ( oprnd != 0 )
    {
    read(&oprt,&oprnd);
    }

    oprnd 0 girilene kadar sürekli giriş yapmanı ister burda. Eğer belli bi sayıda giridirmek istersen de bi sayac atabilirsin.
  • teşekkürler ama sorun bu değil. test etme imkanınız varsa bu şekilde birşey yazıp denerseniz memnun olurum. while içerisinde read() ilk çalıştığında

    printf("Operator : ");
    scanf("%c",oprtr);
    printf("Operand : ");
    scanf("%d",oprnd);

    bölümünü 1 defa sorunsuz işletiyor ancak ikinci dönüşünde ekrana "Operator : Operand :" yazıp geçiyor değer almıyor.
  • fonksiyonun içerisinde fflush(stdout) veya fflush(stdin) fonksiyonlarını çalıştırmak yararlı olabilir belki.
  • arkadaşlar sanırım sorun scanf deymiş...
    scanf(" %c",oprtr);

    şeklinde yazınca düzeldi sanırım ENTER ile ilgili bişey, bu yüzden operator bölümünü atlıyormuş.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.