Kenapa saya tidak bisa cout
string
suka ini:
string text ;
text = WordList[i].substr(0,20) ;
cout << "String is : " << text << endl ;
Ketika saya melakukan ini, saya mendapatkan kesalahan berikut:
Kesalahan 2 kesalahan C2679: biner '<<': tidak ada operator yang menemukan operan tangan kanan dari tipe 'std :: string' (atau tidak ada konversi yang dapat diterima) c: \ users \ mollasadra \ dokumen \ visual studio 2008 \ proyek \ barnamec \ barnamec \ barnamec.cpp 67 barnamec **
Sungguh menakjubkan, bahkan ini pun tidak berfungsi:
string text ;
text = "hello" ;
cout << "String is : " << text << endl ;
#include <iostream>
?Jawaban:
Anda harus memasukkan
sumber
using namespace std
atauusing std::cout
;using std::endl
;string text;
juga edit (tambah kesalahan) mengatakan, bahwa ini bukan masalah tetapistring
header yang hilang .std::basic_string
kelas (karena mereka secara tidak langsung menyertakan header <xstring> yang didefinisikan implementasi ( tidak pernah menyertakan itu secara langsung )). Meskipun itu memungkinkan Anda untuk menggunakan kelas string, yang relevanoperator<<
didefinisikan di header <string> itu sendiri, jadi Anda harus memasukkannya secara manual. Juga mengandalkan header lain untuk secara tidak langsung memasukkan definisistd::basic_string
karya dalam VC ++, tetapi tidak akan bekerja pada semua kompiler.Anda perlu merujuk namespace cout
std
entah bagaimana. Misalnya, masukkandi atas definisi fungsi Anda, atau file.
sumber
Ada beberapa masalah dengan kode Anda:
WordList
tidak didefinisikan di mana pun. Anda harus mendefinisikannya sebelum menggunakannya.#include <string>
sebelum Anda dapat menggunakan kelas string dan iostream sebelum Anda menggunakancout
atauendl
.string
,cout
danendl
tinggal distd
namespace, jadi Anda tidak dapat mengaksesnya tanpa awalan,std::
kecuali jika Anda menggunakanusing
arahan untuk membawanya ke ruang lingkup terlebih dahulu.sumber
Jawaban di atas baik tetapi jika Anda tidak ingin menambahkan string, Anda dapat menggunakan yang berikut ini
sumber
Gunakan c_str () untuk mengonversi std :: string ke const char *.
sumber
Anda tidak perlu referensi
std::cout
ataustd::endl
secara eksplisit.Keduanya termasuk dalam
namespace std
.using namespace std
daripada menggunakan operator resolusi lingkup::
setiap kali membuat lebih mudah dan lebih bersih.sumber
Jika Anda menggunakan sistem linux maka Anda perlu menambahkan
using namespace std;
Tajuk di bawah
Jika windows maka pastikan Anda memasukkan header dengan benar
#include<iostream.h>
#include<string.h>
Lihat ini berfungsi dengan baik.
sumber
using namespace std;
tidak ada hubungannya dengan target os beinglinux
. Demikian pula, menambahkan.h
ke menyertakan tidak ada hubungannya dengan target os menjadi windows,#include <iostream>
dan#include <string>
akan berfungsi pada windows.