İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C++ gets(); Hatası

ErtuCH27.01.20185 cevap3.832 görüntüleme
ErtuCH
2018'den beri26 mesaj
#1
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.
Cevaplar
2012'den beri3.287 mesaj
#2
getline kullanın.
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;
}
düzenlendi
ErtuCH Konuyu açan
2018'den beri26 mesaj
#3
cin.get(); ifadesini neden kullandınız?
2012'den beri3.287 mesaj
#4
ErtuCH dedi: ↑
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 Konuyu açan
2018'den beri26 mesaj
#5
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.
2012'den beri3.287 mesaj
#6
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.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.