Çö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
    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");
}
Yanlış olmuş pardon. Ben bilemedim.
 
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

Teşekkür ederim stringe çevirince çalıştı.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…