merhaba Bu benim kodumun tamamı değil ama bilgileri yalnızca kullanıcı "NewYork" sözcüğünü yazdığında ve yazdığımda bile hiçbir şey hata ayıklamadığında bilgileri yazdırmam gereken yere yapıştım kelime "NewYork". Peki, sorun olan biri ne söyleyebilir? Teşekkürlerif ve char bildirimi
int main(){
Panel *panelptr;
int count,len,wid;
double heg;
char locat[30];
cout<<"how many panels do you need to create ? "<<endl;
cin>>count;
panelptr = new Panel[count];
assert(panelptr!=0);
for(int i=0; i< count; i++){
cout << "Enter the length: ";
cin >>len;
cout << "Enter the width: ";
cin >> wid;
cout << "Enter the height: ";
cin >> heg;
cout<<"Enter the location: ";
cin >>locat;
panelptr[i].setPanel(len,wid,heg,locat);
if(locat == "NewYork")
panelptr->print();
}
delete [] panelptr;
system("pause");
return 0;
}
Sen char işaretçi değerlerini karşılaştırarak dahil , gerçek içerik değil. Char [] yerine std :: string'i kullanmayı deneyin [] – JVApen
Bu ifade 'if (locat ==" NewYork ")' aslında aslında aynı olmayacak iki 'char *' işaretçisini karşılaştırır. –
Diziler, '==' operatör kullanılarak karşılaştırılamaz. Eğer 'locat' dizgisi literal "NewYork" (bir dizi kullanılarak temsil edilir) ile karşılaştırma yapmakta ısrar ederseniz, strcmp() 'işlevine bakın. Daha da iyisi, "char" dizisi yerine "" standart üstbilgisinde belirtilen C++ standart dize sınıfını ('std :: string') kullanın. –
Peter