C++ Length komudu hata veriyor nasıl düzelticem?

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";
    }
}

Surada hata var, == olacak muhtemelen.

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

std::__cxx11::basic_string::size_type (std::__cxx11::basic_string::)() const noexcept
size_type donduren, string member’i, parametresiz cagrilan, string’i degistirmeyen, exception firlatmayan fonksiyon

aka unsigned int (std::__cxx11::basic_string::)() const noexcept
size_t degilmis

cannot convert (bisiy) from type (karmasik type) to type ‘int’
Bisiy int’e cevrilemiyor

1 Beğeni