C++ gets(); Hatası

Bu konuyu okuyanlar

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Merhaba gets(); ifadesini kullandığımda derleyici hata vermiyor lakin program düzgün çalışmıyor dev c++ kullanıyorum. Kod:

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string>
using namespace std;

int main(){
int age;
char ad_soyad[20];
cout<<"Yas: ";
cin>>age;
cout<<"Ad ve soyad: ";
gets(ad_soyad);
cout<< "Adin: " << ad_soyad << " ve yasin: " << age;
getch();
return 0;
}
Lütfen biri yardımcı olsun.
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
getline kullanın.

Kod:
int main(){
int age;
char ad_soyad[20];
cout<<"Yas: ";
cin>>age;
cin.get();
cout<<İsim ve soyisim: ";
getline(ad_soyad);
cout<<"İsim ve soyisim "<<ad_soyad<<"ve yaşınız "<<age;
GetCh();
return 0;
}
 
Son düzenleme:

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
cin.get(); ifadesini neden kullandınız?
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
cin.get(); ifadesini neden kullandınız?
Farklı sebepleri var. İfadeyi char tipine alabilirsin integer yerine. Kullanıcıdan bilgi alınırken konsolun kapanmasını engelleyebilir. Bilgiyi ekrana yazarken konsolun hızlı kapanmasını engelleyebilir. Ama isterseniz silebilirsiniz.
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Ortada kullanılmışda anlıyamadım , peki bu gets ifadesinin neden sorun çıkardığını biliyor musunuz ? Yabanci kaynaklardada bu sorunla karşılaşan kişileri gördüm.
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
Bildiğim kadarıyla gets ifadesi integer bir değeri atamada hızlı eğer char atamalarında gets kullanırsanız burada problem çıkabiliyor. Ama araştırmak lazım.
 
Üst