_bstr_t объединение дает 12142

#c #sql #string-concatenation

#c #sql #конкатенация строк

Вопрос:

У меня здесь странная вещь. Я объединяю _bstr_t строки, чтобы собрать команду SQL.

 _bstr_t strSQL = a b k hk Allin hk k hk  
  

… и так далее.

Когда я печатаю его на консоль (используя std::wcout << '/n'<< strSQL << '/n'; ) Я получаю свою строку, НО с 12142 в начале и конце строки. Это выглядит как:

  12142"SELECT * FROM....."12142
  

Кто-нибудь знает, откуда это берется?

Я использую: VS2010 Express, C и создаю консольное приложение.

Ответ №1:

Вы написали ‘/n’ вместо ‘ n’. Это литерал с несколькими символами, который в данном случае выдает целое число со значением 12142.

Комментарии:

1. Для любопытных: 12142 = 0x2F6E hex, 0x2F = ‘/’, 0x6E = ‘n’