Существует ли функция, которая возвращает значение ASCII символа? (C++)

Ваша процедура test имеет 2 входных аргумента. Один имеет тип IN, который предполагается использовать с процедурой, а другой параметр supplier имеет тип OUT, что означает, что этот параметр должен содержать значение, которое возвращает Procedure.

Как объяснил @Barbaros, если вы хотите выполнить процедуру через командную строку SQL, вы можете выполнить следующие действия.

Однако вторым способом, который вы показали, было использование PLSQL Block.

begin

выполнить тест (2279,: supplierid);

dbms_output.enable;

dbms_output.put_line (поставщик); end;

В приведенном выше примере вызова вы должны заметить, что ключевое слово Execute используется только при использовании командной строки SQL. При использовании блока PLSQL вы можете напрямую вызывать процедуру по ее имени, как показано ниже. Также обратите внимание, что если у вас есть параметр OUT, вы должны передать параметр OUT в Procedure, поскольку Procedure ожидает 2 аргумента. Смотри ниже демо.

declare
 var varchar2(100);
begin
 test( supplierid => 2279, supplier =>var); 
 dbms_output.enable; 
 dbms_output.put_line(var);
End;
13
задан 10 May 2009 в 17:26
поделиться

5 ответов

char c;
int ascii = (int) c;
s2.data[j]=(char)count;

Символ - это целое число, функции преобразования не требуются.

Возможно, вы ищете функции, отображающие целые числа в виде строки - с использованием шестнадцатеричного, двоичного или десятичного числа. представления?

25
ответ дан 1 December 2019 в 19:08
поделиться

Вам не нужен функция для получения значения ASCII - просто преобразуйте его в целое число с помощью (неявного) преобразования:

int x = 'A';  // x = 65
int y = '\t'; // x = 9

Чтобы преобразовать число в шестнадцатеричное или десятичное, вы можете использовать любой из членов семейства printf :

char buffer[32];  // make sure this is big enough!
sprintf(buffer, "%d", 12345);  // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345);  // hex: buffer is assigned "3039"

Нет встроенной функции для преобразования в двоичную форму; вам придется свернуть свой собственный.

8
ответ дан 1 December 2019 в 19:08
поделиться

Если вы хотите получить значение ASCII символа в вашем коде, просто поместите этот символ в кавычки

char c = 'a';
3
ответ дан 1 December 2019 в 19:08
поделиться

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

char c = 'A';
cout << c << " has code " << int(c) << endl;

Аналогично для шестнадцатеричных значений - все числа являются шестнадцатеричными числами, поэтому это просто вопрос вывода:

int n = 42;
cout << n << " in hex is " << hex << n << endl;

"Шестнадцатеричный" в операторе вывода - это манипулятор C ++. Существуют манипуляторы для шестнадцатеричного и десятичного (десятичного) числа, но, к сожалению, нет для двоичного.

2
ответ дан 1 December 2019 в 19:08
поделиться

Что касается шестнадцатеричного и двоичного представления - это просто представления целых чисел. Вероятно, вам нужно что-то вроде printf ("% d", n) и printf ("% x", n) - первый выводит десятичную, а второй шестнадцатеричную версию того же числа. Уточните, что вы пытаетесь сделать -

0
ответ дан 1 December 2019 в 19:08
поделиться
Другие вопросы по тегам:

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