[C++] kolizja między cout a funkcją rekurencyjną
Ostatnio zmodyfikowano 2023-01-21 16:23
eniuwty Temat założony przez niniejszego użytkownika |
[C++] kolizja między cout a funkcją rekurencyjną » 2023-01-21 14:11:51 Nie wiem czemu ale funkcja zwraca wartość ostatniego cout od 40 znaku + wartość funkcji Program wypluwa cbacba143 abcabcbabcbabcbabacbcbabcbabcbabcbcba321bcbacba cbacba143
#include <iostream>
using namespace std;
string sys_licz( int liczba, int sys ) { if( liczba == 0 ) { string g = "" +( char )( liczba + 48 ); return g; } else { return sys_licz( liczba / sys, sys ) +( char )( liczba % sys + 48 ); } }
int main() { string g = sys_licz( 120, 9 ); cout << sys_licz( 120, 9 ) << endl; cout << "abcabcbabcbabcbabacbcbabcbabcbabcbcba321bcbacba" << endl; cout << g << endl; return 0; }
|
|
pekfos |
» 2023-01-21 15:13:51 string g = "" +( char )( liczba + 48 );
Do sklejania napisów dodawaniem przynajmniej jedna strona operacji musi być typu std::string, a tu próbujesz dodać ze sobą const char[1] i char. String z jednym znakiem możesz utworzyć tak: return std::string( 1, znak );
|
|
eniuwty Temat założony przez niniejszego użytkownika |
» 2023-01-21 16:23:43 dziękuje, podziałało. Pozdrawiam i zamykam temat |
|
« 1 » |