Я тоже не могу воспроизвести эту ошибку. Как уже упоминалось, не включайте endl
, так как это фактически добавляет \n
и, как предполагается, очищает буфер записи. Для этого использования это совершенно не нужно и может фактически привести к нежелательным результатам ... Однако, код в вашем редактировании / обновлении прекрасно работает для меня.
int main(int argc, char* argv[])
{
int e_id = 5;
int e_type = 123456;
stringstream out;
out << "Test " << e_id << " " << e_type;
cout << out.str();
return 0;
}
Производит:
Test 5 123456
Я бы посоветовал еще раз проверить, что e_id
и e_type
действительно являются просто родными int
.
Для дальнейшего тестирования может потребоваться принудительное приведение значений, чтобы посмотреть, поможет ли это как таковое:
out << "Test " << (int)e_id << " " << (int)e_type;
Поскольку я не могу воспроизвести эту ошибку, я боюсь, что больше не могу помочь. Но удачи тебе!