Ahoj, v C++ jsem začátečník. Chtěl jsem si udělat na test jednoduchý převodník mezi číselnými soustavami (s Windows Forms GUI), ale trochu mi blbne výstupní hodnota. Přikládám úsek kódu, o který jde a obrázek s ukázkou co to dělá. On tam ten správný výsledek je, ale před ním je taková kaše zvláštních znaků. Kdybyste někdo věděl co s tím, tak budu moc vděčný :)
int mocnina(int n, int p) {
int x = n;
if(p == 0) {
return 1;
} else {
for(int i=0; i<p-1; i++) {
n = n*x;
}
return n;
}
}
private: System::Void systemSubmit_Click(System::Object^ sender, System::EventArgs^ e) {
char vals[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int nc = sourceNum->Text->Length - 1;
int ss = System::Int32::Parse(sourceSystem->Text);
int ts = System::Int32::Parse(targetSystem->Text);
int y = 0;
for(int i=0; i<nc+1; i++) {
int x = System::Int32::Parse(System::Char::ToString(sourceNum->Text[i]));
y = y + (x * mocnina(ss,nc-i));
}
int k = 0;
wchar_t tr[100];
while(y != 0) {
int res = y % ts;
tr[k] = vals[res];
y = y / ts;
k++;
}
int delka = sizeof(tr);
for(int j=0; j<=delka; j++) {
resultNumber->Text += tr[delka-j];
}
}