Я пытался добавить целое число в строку, и я попытался несколько решений здесь, в том числе:Строка поток приходит пустой
std::stringstream ss;
ss << gvHours << "\'" << gvMinutes << "\"" << gvSeconds << ":" << gvTicks;
std::string output(ss.str());
return output.c_str();
и
std::stringstream ss;
std::string output = "";
ss << gvHours << "\'" << gvMinutes << "\"" << gvSeconds << ":" << gvTicks;
output = ss.str();
return output.c_str();
Первый один дает мне пустую строку, а вторая дает мне нечитаемый символ, который Notepad ++ отображает как «SOH» в черном ящике. Кто-нибудь знает, что я делаю неправильно?
См http://stackoverflow.com/questions/6441218/can-a-local-variables -Память-быть-доступ-вне-его-сферу. Вероятно, это причина вашей проблемы. И в зависимости от того, как вы просматриваете строку, она может быть пустой, потому что она состоит из невидимых символов. Например, SOH является управляющим символом «Начало заголовка» (ASCII-код 2). – chris
@chris Хорошая догадка! –
Зачем вам все равно возвращать C-строку? lol –