

C++'A Basladim , Kitaptaki Programin Aynisini Yazmama Ragmen Calismiyor
-
Hep boyle oluyor , kitaptakinin aynisini yazdigimda calismiyor genelde
#include "stdafx.h"
#include <iostream.h>
int _tmain(int argc, _TCHAR* argv[])
{ int a, b, c;
cout <<"Bir tam sayi giriniz";
cin >>a;
count <<endl;
cout <<"Ikinci bir tam sayi giriniz";
cin >>b;
c=a*b;
cout <<"girdiginiz sayilarin carpimi="<<c<<endl;
cin >>a;
return 0;
}
Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory c:\users\administrator\desktop\programlama calismalarim\c++\ilk\ilk\ilk.cpp 5 ilkbanami denk geliyor ? bunun neresinde hata var ? kitaptaki ilk ornegi bire bir yazdim !
(visual studio 2008 kullaniyorum ) ...
-
int _tmain(int argc, _TCHAR* argv[]) burası
int main(int argc, _TCHAR* argv[]) şeklinde denedin mi?
-
Esquire bunu yazdı:
-----------------------------
int _tmain(int argc, _TCHAR* argv[]) burası
int main(int argc, _TCHAR* argv[]) şeklinde denedin mi?
-----------------------------yine ayni hata . olmadi ...
This is a common mistake among C programmers who start coding in a new environment with a new compiler such as .NET 1.1 or .NET 2.0. You get the error because the iostream.h file is no longer used with these compilers, instead use the ISO compliant file iostream:
#include ;
yani visual net 2003 ve uzeri derliycilerde ".h" konulmamasi gerekmis . ama onuda yapinca cout ve cin komutlarini tanimiyor :S
Error 1 error C2065: 'cout' : undeclared identifier c:\users\ ...............
Error 2 error C2065: 'cin' : undeclared identifier c:\user...............................
-
tamam duzeldi .
#include <iostream> olara degistirdim ve
using namespace std; ekledim . calisti ?ama using namespace mantigi nedir ?
-
bende daha ilginç bir şey oldu büyük bir ihtimalle header dosyalarında bir ayarsızlık var.
bu kod netbeanste çalıştı, dev cpp çalışmadı ve visual studioda da çalışmadı. garip bir durum.
#include <iostream.h>
int main()
{
int a=0,b=0, c=0;
cout <<"Bir tam sayi giriniz";
cin >>a;
cout <<endl;
cout <<"Ikinci bir tam sayi giriniz";
cin >>b;
c=a*b;
cout <<"girdiginiz sayilarin carpimi="<<c<<endl;
cin >>a;
return 0;
} -
Esquire bunu yazdı:
-----------------------------
bende daha ilginç bir şey oldu büyük bir ihtimalle header dosyalarında bir ayarsızlık var.
bu kod netbeanste çalıştı, dev cpp çalışmadı ve visual studioda da çalışmadı. garip bir durum.
#include
int main()
{
int a=0,b=0, c=0;
cout <<"Bir tam sayi giriniz";
cin >>a;
cout < cout <<"Ikinci bir tam sayi giriniz";
cin >>b;
c=a*b;
cout <<"girdiginiz sayilarin carpimi="< cin >>a;
return 0;
}
-----------------------------yukarida belirttim , visual studio 2003 ve uzeri ( net framewrok 2 ve uzeri ) derleyicide <iostream> olarak yazilacakmis , gerci C:\programfiles\visualstudio\v9\VC\includes icinde iostream olarak kayitli yani iostream.h olarak kayitli degil, sanirim bu yuzden hata verdi , ayrica namespace'i ekledikten sonra sorunsuz calisti. namespace neden ekliyoruz ( gerci kitabin daha basindayim ) ...
-
#include <iostream>
olacak sonuna .h koymaya gerek yok. Eski compilerlar da bu durum geçerliydi. Artık gerek yok.
C# ta using System.Console dersiniz, sonra WriteLine(); fonksiyonunu istediğiniz gibi kullanırsınız.
Eğer demezseniz her sefer System.Console.WriteLine(); demek zorunda kalırsınız.
C++ ta da aynı şekilde durum, kullandığınız cout fonksiyonu std namespace i içinde o yüzden her sefer std::cout yazmak istemiyorsanız kodun başına using namespae std; ekleyeceksiniz.
Kodun bazı platformlarda çalışması tamamen esneklikten kaynaklanıyor. Ama siz esnekliğe güvenmeyin işiniz sağlama alın derim ;)
-
Sscheme bunu yazdı:
-----------------------------
#include
olacak sonuna .h koymaya gerek yok. Eski compilerlar da bu durum geçerliydi. Artık gerek yok.
C# ta using System.Console dersiniz, sonra WriteLine(); fonksiyonunu istediğiniz gibi kullanırsınız.
Eğer demezseniz her sefer System.Console.WriteLine(); demek zorunda kalırsınız.
C++ ta da aynı şekilde durum, kullandığınız cout fonksiyonu std namespace i içinde o yüzden her sefer std::cout yazmak istemiyorsanız kodun başına using namespae std; ekleyeceksiniz.
Kodun bazı platformlarda çalışması tamamen esneklikten kaynaklanıyor. Ama siz esnekliğe güvenmeyin işiniz sağlama alın derim ;)
-----------------------------oncelikle tesekkur ederim ...
o zaman std herhangi bir metin degil , programin istedigi islem .
mesela namespace abc yazdigimizda program calisirmi ?
(C# verdigin ornegi pek anlamadim . basit bir ornekle aciklarmisin ? )
-
std Standart ın kısaltması :) o yüzden abc çalışmaz.
Kullandığın cout, cin gibi fonksiyonlar ve endl gibi değişkenler bu namespace in içerisinde tanımlıdır. O yüzden bu namespace i dahil etmeden o fonksiyonları kullanman az önceki durum gibi compiler ın insafına kalır.
en basit haliyle C# ta kodun başına eklenen
using System;
using System.Data;
using System.IO;gibi ifadelerin C++ karşılığıdır.
Mesela C# ta
MessageBox.Show() diyip bir şeyler gösteriyorsun. Bunu yapabilmen için kodun başına
using System.Windows.Forms koymalısın. Çünkü kullanacağın MessageBox sınıfının Show() fonksiyonu o namespace içinde tanımlı.
Kullanırken
using System.Windows.Forms yazmazsan kodun başına
System.Windows.Forms.MessageBox.Show("TBT");
şeklinde kullanacaksın.
C++ ta ise
using namespace std;
int main()
{
cout << "TBT" << endl;
return 0;
}
yazarsın
Yok ben using namespace eklemem diyorsan
int main()
{
std::cout << "TBT" << std::endl;
return 0;
}
Ben de yapıcam diyorsan en sade haliyle
namespace tbt
{
int x = 25;
}
diye namespace i tanımladıktan sonra ister
using namespace tbt;
int main()
{
cout << x << endl;
return 0;
}
şeklinde. İster
int main()
{
cout << tbt::x << endl;
return 0;
}
şeklinde kullan.
Sana tavsiyem madem C++ a geçiyorsun; olduğun yerde bırak, önce Object Oriented Programming öğren. Yoksa sürekli bir şeyler yarım kalacaktır. OOP kullanmadan C++ ın bir manası yok. C ye baksan daha iyi.
-
Sscheme bunu yazdı:
-----------------------------
std Standart ın kısaltması :) o yüzden abc çalışmaz.
Kullandığın cout, cin gibi fonksiyonlar ve endl gibi değişkenler bu namespace in içerisinde tanımlıdır. O yüzden bu namespace i dahil etmeden o fonksiyonları kullanman az önceki durum gibi compiler ın insafına kalır.
en basit haliyle C# ta kodun başına eklenen
using System;
using System.Data;
using System.IO;gibi ifadelerin C++ karşılığıdır.
Mesela C# ta
MessageBox.Show() diyip bir şeyler gösteriyorsun. Bunu yapabilmen için kodun başına
using System.Windows.Forms koymalısın. Çünkü kullanacağın MessageBox sınıfının Show() fonksiyonu o namespace içinde tanımlı.
Kullanırken
using System.Windows.Forms yazmazsan kodun başına
System.Windows.Forms.MessageBox.Show("TBT");
şeklinde kullanacaksın.
C++ ta ise
using namespace std;
int main()
{
cout << "TBT" << endl;
return 0;
}
yazarsın
Yok ben using namespace eklemem diyorsan
int main()
{
std::cout << "TBT" << std::endl;
return 0;
}
Ben de yapıcam diyorsan en sade haliyle
namespace tbt
{
int x = 25;
}
diye namespace i tanımladıktan sonra ister
using namespace tbt;
int main()
{
cout << x << endl;
return 0;
}
şeklinde. İster
int main()
{
cout << tbt::x << endl;
return 0;
}
şeklinde kullan.
Sana tavsiyem madem C++ a geçiyorsun; olduğun yerde bırak, önce Object Oriented Programming öğren. Yoksa sürekli bir şeyler yarım kalacaktır. OOP kullanmadan C++ ın bir manası yok. C ye baksan daha iyi.
-----------------------------kitabin basi , kitap pek aciklayici olmamis acikcasi :( belki ileride aciklama yapmis olabilir .
anlatimin icin ayrica tesekkurler ...
-
eger visual studio kullanıyorsan
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cout <<"Bir tam sayi giriniz"<<endl;
cin >>a;
cout <<"Ikinci bir tam sayi giriniz"<<endl;
cin >>b;
c=a*b;
cout <<"girdiginiz sayilarin carpimi="<<c<<endl;
cin >>a;
return 0;}
eger dev programını kullanıyorsan
yukarda yazdıgın gibi kodlar dogru olmalı. tabi orda count yazmısın onuda düzelt.