Saya sudah mulai belajar C ++ untuk kelas pemrograman saya. Saya telah mendownload program "Hello World" ini:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!";
return 0;
}
tapi Turbo C ++ mengeluh:
Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM'
Error D:\HELLO.CPP 2: Declaration syntax error
Error D:\HELLO.CPP 6: Undefined symbol 'cout'
Ada apa dengan program yang sangat sederhana ini? Bagaimana cara memperbaiki kesalahan ini?
Jawaban:
Tidak ada masalah dengan program ini. (Kecuali mungkin beberapa masalah gaya -
using namespace std
tidak disarankan). Masalahnya ada pada Turbo C ++. Ini adalah perangkat lunak yang sangat tua. Ini mengimplementasikan dialek C ++, yang disebut pra-ANSI C ++ , yang telah benar-benar tidak digunakan pada awal milenium ini. Standar ANSI pertama untuk C ++ di terbitkan tahun 1998, lalu ada versi 2003, versi 2011, versi 2014, versi 2017, dan sekarang kami harapkan versi 2020 sudah resmi terbit. Setiap revisi standar ini membawa perubahan yang kurang lebih signifikan pada bahasa.Untuk Turbo C ++ Anda harus memodifikasi program seperti ini:
Jika Anda melihat program ini, perbedaan antara dialek C ++ modern dan yang diterima oleh Turbo C ++ mungkin tampak kecil. Namun itu akan tumbuh jauh lebih besar karena program Anda akan menjadi lebih kompleks.
Meskipun Anda dapat belajar pemrograman menggunakan Turbo C ++, saya sangat menyarankan untuk menghindarinya jika memungkinkan secara manusiawi karena masalah berikut:
Ada banyak kompiler dan IDE modern gratis (seperti dalam bir , juga dalam pidato ) yang dapat Anda gunakan sebagai pengganti Turbo C ++. Beberapa di antaranya adalah:
Sayangnya, beberapa sekolah / guru tampaknya memaksa siswanya untuk menggunakan Turbo C ++ bahkan di zaman sekarang ini. Sayangnya, komunitas ini tidak dapat memperbaiki hal ini. Jika Anda berada dalam situasi ini, bersiaplah untuk tidak mendapatkan banyak bantuan dari luar.
sumber
using namespace std
. Ini mungkin atau mungkin bukan keputusan pedagogis yang baik untuk mengajarkannya kepada pemrogram baru, tapi itu tidak salah secara moral.using namespace std
adalah praktik yang buruk, tetapi saya pikir itu termasuk dalam pertanyaan ini, karena program C ++ hello world yang Anda temukan online hampir selalu melakukannya. Jadi, penting untuk memperjelas bahwa bukan itu yang membuat Turbo C ++ tidak menyenangkan. Mungkin alih-alih "Tidak ada masalah dengan program ini", katakan "Program ini valid, menurut standar C ++ saat ini ; ia harus dikompilasi.""Turbo C ++" bisa berarti banyak kompiler. Saat menanyakan pertanyaan ini, penting untuk menyertakan nomor versi.
Borland Turbo C ++ hingga versi 3.1 adalah kompiler MS DOS murni dengan IDE latar belakang biru klasik. Ini dirilis kira-kira antara tahun 1989 sampai 1992, jauh sebelum C ++ menjadi standar, yang terjadi pada tahun 1998. Jadi mereka menggunakan dialek pra-standar C ++.
Terutama mereka menggunakan
#include <iostream.h>
sintaks daripada standar#include <iostream>
, tetapi juga tidak mencakup banyak fitur C ++ seperti ruang nama, template dll. Pustaka template STL belum menjadi bagian dari standar, jadi segala sesuatu yang berhubungan dengan pustaka itu cukup berbeda dengan yang kemudian menjadi standar.Kemudian di tahun 90-an, Borland merilis beberapa kompiler DOS / Windows dengan kesesuaian yang lebih baik. Hingga versi 5 di suatu tempat mereka masih berjuang dengan kesesuaian penuh dengan C ++ 98, meskipun versi Windows ini cukup dekat dengannya.
Pada akhir 90-an, mereka menghilangkan nama "Turbo C ++" untuk Borland C ++ Builder, yang bukan hanya IDE tetapi alat RAD lengkap berdasarkan Delphi. Kompiler ini sepenuhnya sesuai dengan C ++ 98 dan kemudian C ++ 03.
Sekitar tahun 2005, Borland mengeluarkan compiler sebagai bagian dari lini produk mereka. Penyusunnya menjadi "Codegear", yang kemudian menjadi Embarcadero. Sekitar saat itu, mereka merilis versi gratis dari Borland Builder yang mereka beri nama "Turbo C ++". Versi ini sepenuhnya sesuai dengan C ++ 03.
Saat ini kompiler ini disebut Embarcadero C ++ Builder. Saya yakin mereka saat ini mendukung hingga C ++ 11 dengan beberapa C ++ 14. Info selengkapnya di sini.
Tak perlu dikatakan, sebagai pelajar Anda tidak boleh menggunakan apa pun kecuali kompiler modern. Menggunakan kompiler MS DOS dari tahun 1991 ketika mempelajari C ++ di tahun 2018 adalah hal yang gila. Tidak hanya kontraproduktif, itu secara langsung berbahaya dan akan membuat Anda menjadi programmer C ++ yang buruk. Jika sekolah Anda memaksa Anda untuk menggunakan Turbo C ++ 3.1 atau yang lebih lama, maka sekolah Anda buruk dan guru Anda sangat tidak kompeten. Harap tautkan posting ini ke mereka dan kepala sekolah mereka.
sumber
std::string
sebagai penggantichar *
dalam ujian, karena mereka tidak tahu bahwa C ++ dibakukan danchar *
sudah ditinggalkan." .Turbo C ++ adalah kompilator yang sangat tua dan sedikit berbeda dari kompilator GNU C ++. Kode Anda bersama akan bekerja sempurna dengan compiler GNU tapi untuk menjalankannya dengan Turbo C ++ Anda perlu membuat beberapa perubahan:
1. Perubahan nama file header dari
iostream
keiostream.h
2. Dan menghapus baris "menggunakan namespace std" Hal ini tidak diperlukan di Turbo C ++. Ini kode yang dimodifikasi:
sumber