Çözüldü C++ strcut çalışmayan kod

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

ikaross

Hectopat
Katılım
15 Mayıs 2020
Mesajlar
680
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
öğrenci
Arkadaşlar önümde kitap var aynı kodu yazdım onda çalışırken bende neden çalışmadı?
 

Dosya Ekleri

  • Screenshot (31).png
    Screenshot (31).png
    164,5 KB · Görüntüleme: 80
Çözüm
String'lik bir iş yok burada. char* olarak tutmak istiyorsunuz. Ama atamaya çalıştığınız şey const char*.
Cast edip char* gibi gösterebilirsiniz ama tavsiye etmem. Tavsiyem struct elemanlarını const char* yapmanız. Zaten çalışanların adları ve soyadları öyle he deyince değişmez.

Veya setAd ve setSoyad gibi metotlar eklersiniz ve onlarda dönüşüm yaparsınız.
Tavsiyem.
Kod:
struct calisan {
    const char* ad;
    const char* soyad;
    int yas;
};

int main() {
    calisan x;
    x.yas = 5;
    x.ad = "asd";
}
Tavsiye etmediğim ama Visual Studio'nun hata vermeyeceği.
Kod:
struct calisan {
    char* ad;
    char* soyad;
    int yas;
};

int main() {
    calisan x;
    x.yas = 5;
    x.ad = (char*)"asd";
    // veya
    x.ad = reinterpret_cast<char*>("asd");
}
C++:
 string ad, soyad;
Eksik bilgi.
[CODE lang="cpp" title="Kütüphane Tanımı"]#include <iostream>
#include <string>

using namespace std;[/CODE]
Kodun başına eklenmeli.
 
String fonksiyonlarıyla ilgili bir şey yok kodda, #include <string> neden eklensin?
Sizin verdiğiniz kodu çalıştırabilmesi için.
Dipnot: Çok özür dilerim. Benim dikkatsizliğim :( Gerekmiyor. Ama
C++:
#include <iostream>

using namespace std;
gerekiyor sanırım.
 
String'lik bir iş yok burada. char* olarak tutmak istiyorsunuz. Ama atamaya çalıştığınız şey const char*.
Cast edip char* gibi gösterebilirsiniz ama tavsiye etmem. Tavsiyem struct elemanlarını const char* yapmanız. Zaten çalışanların adları ve soyadları öyle he deyince değişmez.

Veya setAd ve setSoyad gibi metotlar eklersiniz ve onlarda dönüşüm yaparsınız.
Tavsiyem.
Kod:
struct calisan {
    const char* ad;
    const char* soyad;
    int yas;
};

int main() {
    calisan x;
    x.yas = 5;
    x.ad = "asd";
}
Tavsiye etmediğim ama Visual Studio'nun hata vermeyeceği.
Kod:
struct calisan {
    char* ad;
    char* soyad;
    int yas;
};

int main() {
    calisan x;
    x.yas = 5;
    x.ad = (char*)"asd";
    // veya
    x.ad = reinterpret_cast<char*>("asd");
}
 
Çözüm
String'lik bir iş yok burada. char* olarak tutmak istiyorsunuz. Ama atamaya çalıştığınız şey const char*.
Cast edip char* gibi gösterebilirsiniz ama tavsiye etmem. Tavsiyem struct elemanlarını const char* yapmanız. Zaten çalışanların adları ve soyadları öyle he deyince değişmez.

Veya setad ve setsoyad gibi metotlar eklersiniz ve onlarda dönüşüm yaparsınız.
Tavsiyem.
Kod:
struct calisan {
 const char* ad;
 const char* soyad;
 int yas;
};

int main() {
 calisan x;
 x.yas = 5;
 x.ad = "asd";
}
Tavsiye etmediğim ama Visual Studio'nun hata vermeyeceği.
Kod:
struct calisan {
 char* ad;
 char* soyad;
 int yas;
};

int main() {
 calisan x;
 x.yas = 5;
 x.ad = (char*)"asd";
 // veya.
 x.ad = reinterpret_cast<char*>("asd");
}

Teşekkür ederim stringe çevirince çalıştı.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı