Şimdi Ara

C++'da String Hatalı Çalışıyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
6
Cevap
0
Favori
403
Tıklama
Tüm Forumlar >> Web Tasarım - Programlama >> Yazılım Geliştirme >> Delphi / C++ /Vb >> C++'da String Hatalı Çalışıyor
Sayfaya Git:
Sayfa:
1
Giriş
Mesaj
  • Yarbay
    2531 Mesaj
    #include <iostream> 
    #include <string>
    using namespace std;
    /////////////////////////////////
    class calisan
    {
    string isim;
    int numara;
    public:
    calisan () {isim=" ";numara=0;}
    void kayit()
    {
    cout<<"Numarayi Giriniz:";
    cin>>numara;
    cout<<endl<<"Ismi Giriniz:";
    getline(cin,isim);
    }
    void goster()
    {
    cout<<"Numara:"<<numara<<endl<<"Isim:"<<isim;
    }
    };


    /////////////////////////////////
    int main()
    {
    calisan c1,c2,c3;
    c1.kayit();
    c2.kayit();
    c3.kayit();
    c1.goster();
    c2.goster();
    c3.goster();

    cout<<endl;
    return 0;
    }



    Yukarıdaki kodda sınıf içine bir string bir de integer veri yerleştirilmesi gerekli. Fakat Numarayı rahatça yerleştiriyorum "Enter"a basıyorum fakat string'e hiçbirşey yazılmamış ve enter'a basılmış gibi algılıyor , boş geçiyor. Derleyici derliyor sorun yok fakat çalışırken hatalı çalışıyor. Nerede hata yaptım acaba ?
    Derleyici: VS 2008



    |
    |
    _____________________________




  • Çavuş
    74 Mesaj
    sorunu çözmek için getline dan önce cin.ignore(256, '\n'); kullanılıyormuş
    https://forum.ceviz.net/c-c/98621-cin-den-sonra-cingetline-deger-alamama-sorunu.html
    |
    |
    _____________________________
  • Yarbay
    3748 Mesaj
    Senelerdir tam olarak anlayamadığım buffer problemi. Numarayı aldıktan cin.ignore(); yaz. Parametrelere gerek yok.
  • Yarbay
    2531 Mesaj
    cin.ignore(); kullanınca çalıştı. Hiç anlamış değilim. İşin ilginci kitabdaki örnek kodlar bile çalışmıyor
    |
    |
    _____________________________
  • Çavuş
    45 Mesaj
    quote:

    Orijinalden alıntı: Guest-BF8E9B238

    Senelerdir tam olarak anlayamadığım buffer problemi. Numarayı aldıktan cin.ignore(); yaz. Parametrelere gerek yok.
    quote:

    Orijinalden alıntı: elektro_gadget

    Senelerdir tam olarak anlayamadığım buffer problemi. Numarayı aldıktan cin.ignore(); yaz. Parametrelere gerek yok.

    +1 al benden de o kadar. bende çözüm olarak ard arda iki kez getline yazıyorum senelerdir :)
    |
    |
    _____________________________
  • Yüzbaşı
    388 Mesaj
    fflush(stdin);
    getline(cin, isim);

    olarakta çalışır :)



    < Bu ileti mini sürüm kullanılarak atıldı >
    |
    |
    _____________________________
HızlıCevap
Sayfaya Git:
Sayfa:
1
Reklamlar
SEO
haberler
Canlı Tv izle
son dakika
Bu sayfanın
Mobil sürümü
Mini Sürümü

DHBR1
0,203
1.2.165

Reklamlar
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.