C++ преобразовывает интервал и строку для обугливания*

Sql Server 2005 дает Вам способность определить закрывающий индекс. Это - индекс, который включает данные из других столбцов на уровне листа, таким образом, Вы не должны возвращаться к таблице для получения столбцов, которые не включены в индексные ключи.

create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);

Это неоценимо для запроса, который имеет my_col3 в списке выборки, и my_col1 и my_col2 в где пункт.

7
задан user69514 19 November 2009 в 20:03
поделиться

5 ответов

С соответствующими включениями:

#include <sstream>
#include <ostream>
#include <iomanip>

Примерно так:

std::ostringstream oss;
oss << std::hex << a << '\t' << str << '\n';

Скопируйте результат из:

oss.str().c_str()

Обратите внимание, что результат c_str является временным (!) const char * , поэтому, если ваша функция принимает char * , вам нужно будет где-то разместить изменяемую копию. (Возможно, скопируйте его в std :: vector .)

20
ответ дан 6 December 2019 в 06:36
поделиться
#include <stdio.h>

char display_string[200];
sprintf(display_string,"%X\t%s",a,str.c_str());

Я использовал sprintf для форматирования вашего числа как шестнадцатеричного.

2
ответ дан 6 December 2019 в 06:36
поделиться

str.c_str () вернет C-строку с завершающим нулем.

Примечание: не отвечая на главный вопрос, поскольку ваш комментарий указал, что в этом нет необходимости.

1
ответ дан 6 December 2019 в 06:36
поделиться

те, кто пишет "const char * myString =" a number ";" просто паршивые программисты. Не имея возможности усвоить основы C, они бросаются в C ++ и начинают говорить о вещах, которых они просто не понимают.

Тип «const char *» - это указатель. «число» - это массив. Вы смешиваете указатели и массивы. Да, компиляторы C ++ иногда позволяют печатать по воздуховоду. Но вы также должны понимать - если вы печатаете по воздуховоду, не понимая, где находится ваша «дуктивность», - вся ваша программа - это просто клейкая лента.

0
ответ дан 6 December 2019 в 06:36
поделиться

Попробуйте следующее:

int myInt = 31;
const char* myString = "a number";
std::string stdString = "a number";

char myString[100];

// from const char*
sprintf(myString, "%x\t%s", myInt, myString);

// from std::string   :)
sprintf(myString, "%x\t%s", myInt, stdString.c_str());
4
ответ дан 6 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: