g++ ‘gets’ was not declared in this scope

Başlatan whoiskernel, 04 Ocak 2017 - 21:25:25

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

whoiskernel

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
int indis=0;
char *g, firma[50];

cout<<"firma adi=";   gets(firma);

g=firma;

while(g[indis]!=NULL)
{
cout<<g[indis];
indis++;
}

return 0;
}

g++ ile derlediğimde şu hatayı veriyor
test.cpp: In function 'int main()':
test.cpp:11:34: error: 'gets' was not declared in this scope
  cout<<"firma adi=";   gets(firma);
                                  ^
test.cpp:15:18: warning: NULL used in arithmetic [-Wpointer-arith]
  while(g[indis]!=NULL)

C++ ile ilgili kitap aldım kitapta aynı kütüphaden ve aynı komuttan(gets) bir sürü örnek var.Aynı kodları vboxta dev-c++ ile derleyince hata vermiyor.Bir kaç editörle daha denedim(geany,netbeans)  linuxde aynı hatayı veriyor.Linuxde yeniyim daha anlamadım bu kütüphaneleri tanımlıycazmı terminalden yoksa sadece windows için bir kütüphanemi?
Tanımlıycaksakta nasıl bir yolla tanımlıycaz?

if

@whoiskernel, konuları uygun yere açın lütfen.

Amenofis

gets C'den kalma bir fonksiyon. C++ çalışıyorsan uygun değil. Onun yerine cin nesnesini kullanacaksın. Bu nesnenin getline fonksiyonu gets'e karşılık gelir.

cin.getline(firma, 50);

Erdem

Alıntı Yapcout<<"firma adi=";
    gets(firma);

@whoiskernel yazdığın program g++ ile  gcc 4.9.4 derleniyor.

Derleniyor derlenmesine ama okuduğun kitap C++'yi bu şekilde anlatıyorsa hiç okumanı tavsiye etmem. Benim bu şekilde okumadığım C++ kitapları oldu.

Bunun yerine en başta std::vector gibi toplulukları ve standart kütüphane kullanımını daha en baştan anlatan kaynaklardan C++'yi öğrenmeni tavsiye ederim.

whoiskernel

Alıntı yapılan: if - 05 Ocak 2017 - 13:22:51
@whoiskernel, konuları uygun yere açın lütfen.
özür dilerim daha forumda yeniyim.
Alıntı yapılan: Amenofis - 05 Ocak 2017 - 14:20:52
gets C'den kalma bir fonksiyon. C++ çalışıyorsan uygun değil. Onun yerine cin nesnesini kullanacaksın. Bu nesnenin getline fonksiyonu gets'e karşılık gelir.

cin.getline(firma, 50);
çok teşekkürler .
Alıntı yapılan: Erdem - 05 Ocak 2017 - 14:28:40
Alıntı Yapcout<<"firma adi=";
    gets(firma);

@whoiskernel yazdığın program g++ ile  gcc 4.9.4 derleniyor.

Derleniyor derlenmesine ama okuduğun kitap C++'yi bu şekilde anlatıyorsa hiç okumanı tavsiye etmem. Benim bu şekilde okumadığım C++ kitapları oldu.

Bunun yerine en başta std::vector gibi toplulukları ve standart kütüphane kullanımını daha en baştan anlatan kaynaklardan C++'yi öğrenmeni tavsiye ederim.
Kitabı alma amacım windowsta basit oyunlar tasarlamaktı dilin daha yarısındayken  linuxe geçince her şey birbirine girdi.

Erdem

Alıntı yapılan: whoiskernel - 05 Ocak 2017 - 17:23:50
Kitabı alma amacım windowsta basit oyunlar tasarlamaktı dilin daha yarısındayken  linuxe geçince her şey birbirine girdi.

Ne kadar güzel!  ;)

Demek istediğim C++ öğrenirken C++'yi C++ gibi öğreten kaynaklardan öğrenmekte fayda var. Örneğin Accelerated C++ kitabı olabilir.

C++'yi C gibi öğreten kaynaklardan öğrenmeyi tavsiye etmiyorum. Çünkü gerçekten C++ öğrenmeye başlayınca bir sürü hatalı programlama tekniği öğrendiğinizi farkedebilirsiniz. Ya da aslında unutmanız gereken bazı bilgiler öğrenmiş olabilirsiniz.

Amacınız oyun yapmaksa D dili de öğrenebilirsiniz.

http://ddili.org/ders/d/index.html

Örneğin Dsfml oyun kütüphanesini kullanmak isterseniz basitçe bir uç birimden şu komutları vermeniz yeterli:

$ git clone https://github.com/erdemoncel/dsfml
$ make
$ ./merhaba

Amenofis

Amaç oyunsa c++'ı geç, boşa zaman kaybı. D hiç olmaz, derlenen dilleri geçeceksin bu iş için.

Önem sırasına göre;
1- Javascript
2- Lua
3- Python
bunlardan birini öneririm. Javascript açık ara hepsini gömer.

freeman

@Amenofis
Neye gore C++ i geçsin? Verdiginiz cevap çok yanıltıcı.
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

Erdem

Alıntı yapılan: Amenofis - 05 Ocak 2017 - 22:10:56
Amaç oyunsa c++'ı geç, boşa zaman kaybı. D hiç olmaz, derlenen dilleri geçeceksin bu iş için.

Önem sırasına göre;
1- Javascript
2- Lua
3- Python
[...]

Amenofis C++ oyun endüstrisinde en çok kullanılan dillerden bir tanesi. Belki de en çok kullanılan dil.

Ben C++ ile yaptığım yap boz oyunun D sürümünü daha kolay kodlamıştım.

http://ddili.org/forum/post/11850

Önceleri de SDL için D ilintileri yazmıştım.

http://ddili.org/ders/sdl/hosgeldiniz.html

Python için de derinine arama algoritmasını kodlamıştım.

http://www.erdem.tk/resim/resim/pacmandfs.mp4

Demek ki emek verince oluyor  :D

Tabi ki kardeşimiz Wow gibi bir oyun kodlamayacak. Zaten kodlasa buraya soru soracağını pek tahmin etmiyorum.

Oyunların nasıl yapıldığını hızlıca öğrenmek için Python da kullanılabilir. Burada Türkçe dersler var.

http://www.balloonbuilding.com/

Amenofis

Arkadaş gta5 seviyesinde oyun yapacaksa c++ iyi seçim olur. Aksi halde basit ve ücretsiz olan bütün oyun motorları kodlama için script dillerini kullanır. Çünkü doğrusu budur.

%90 başarısızlıkla sonuçlanacak bir girişim için, ustalaşması en az 10 yıl süren bir dil tavsiye ediyorsunuz. Fakat script dili oyun yapamasa bile başka işlere yarar.

freeman

Gunumuzda yapilan oyunlaarin buyuk çoğunluğu C++ dışında Java ve C# ile yapılıyor. Demek ki aman aman zor bir durum yok. 

Su an mobildeyim fazla yazamıyorum ☺
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.