verdiği hata bu = cannot convert ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size<char, std::char_traits, std::allocator >’ from type ‘std::__cxx11::basic_string::size_type (std::__cxx11::basic_string::)() const noexcept {aka unsigned int (std::__cxx11::basic_string::)() const noexcept}’ to type ‘int’
#include <iostream>
#include <string>
using namespace std;
int main() {
string isim;
int uzunluk;
cout << "ismin: ";
cin >> isim;
uzunluk = isim.length();
if (uzunluk = 1) {
cout << "ismin " << isim << " mi";
} else {
cout << "deneme için bu";
}
}
Kullandiginiz compiler’in butun warning’lerini acmanizi tavsiye ediyorum. (g++ icin -Wall argumani)
Hata mesajinin satir numarasini paylasmayi unutmussunuz. (Onu da kod gibi ve eksiksiz paylasmanizi tavsiye ediyorum.)
Hata mesaji bu koda ait degil. length’in cagrilmayi unuttuguna isaret ediyor. (length fonksiyonunu int’e ceviremeyiz diyor.)
C++ template hata mesajlari malesef karmasik. Basitlestiren tool’lar var (stlfilt). Baska compiler’lar denenebilir (clang). Okumayi ogrenmek de birak yardimci oluyor.
std::__cxx11::basic_string<_CharT, _Traits, _Alloc>
bu std::string
std::__cxx11::basic_string::size_type
bu std::string::length’in dondurdugu type olsa gerek, pratikte size_t olmasi lazim