2010-11-11 1 views
1

Мои попытки применения консольных написать целое к консоли:Использование CString Преобразовать Int и отправить Утешьте

int i = 170; 
CString cs; 
cs.Format(L"%d", i); 
wcout << cs << endl; 

я ожидаю «170», чтобы записать на консоль, но то, что происходит, «00E21280» , Это адрес. Я проверил, что «170» сохраняется в этой ячейке памяти. Есть идеи?

+0

Что-то не так с станд :: строка? – Puppy

+0

@DeadMG: Джим Фелл должен быть поклонником багги, хакерских, древних и непереносимых технологий. –

+0

@DeadMG, я не думаю, что вы могли бы использовать std :: string для этого, если вы не использовали также Boost Format. –

ответ

2

Вы должны направить его на строку, иначе он будет рассматривать ее как указатель.

wcout << (PCTSTR)cs << endl; 
+2

Я думаю, что это должно быть wcout << (LPCTSTR) cs << endl; но мне не хватает репутации для редактирования вашего сообщения. +1 к вам все равно. – pstrjds

+0

Это сделало трюк. Спасибо! –

+0

LPCTSTR - это пожилое использование, которое используется при переходе с Win16. В настоящее время нет необходимости в приложенном приложении «L» :) –

 Смежные вопросы

  • Нет связанных вопросов^_^