我有一个来自键盘的字符,按整数:
int c = getch();
仅当它不是时,我才想将其附加到字符串return
:
void somefunction()
{
std::string str = "you pressed: ";
int c;
while ( 1 )
{
c = getch();
if ( c == 10 ) break;
char* ch;
sprintf(ch,"%c",c);
str += std::string(ch);
}
}
somefunction
但是,当留下范围时,这会产生分段错误。我猜想当 dtor forstr
被调用时,指向的指针ch
不再可用。
我该如何补救?