c++ - 为什么我可以读取 char[2] 但不能读取 char[1]?

标签 c++ oracle types char

我能够在 OCI C++ 中将 char 读入 char[2]代码,但我无法读取字符 1

有人知道为什么吗?

(oracle数据类型为char(1))

最佳答案

如果输入像字符串一样处理,则需要空间来在末尾应用空终止符(a '\0')。也就是说,如果数据是 'a',则字符串表示形式 ("a") 在内存中存储为两个字符 'a''\0'。需要 '\0' 来告诉通常的字符串处理嫌疑人字符串在哪里结束。

在对您正在使用的工具一无所知的情况下,我不能肯定地说,但您可以分配给字符变量(而不是字符数组变量)。


简要查看您发布的链接中的文档,我怀疑您应该使用 std::string 作为文本数据的接收类型。

关于c++ - 为什么我可以读取 char[2] 但不能读取 char[1]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528502/

相关文章:

C++ getline 使用逗号作为分隔符的多个变量类型

c++ - 再次包含库和 Error LNK2001 : unresolved external symbol

oracle - 为已经存在的表创建列表分区

c# - 有人有一个 C# 函数可以将列的 SQL 数据类型映射到它的 CLR 等价物吗?

c# - 从基类对象列表中识别派生类型

c++ - 从头开始构建一个 xml 树 - pugixml C++

c++ - 如果我需要读取大量文件,将任务分成多个线程会更快吗?

python - py2exe、sqlalchemy 和 cx_oracle : ImportError: No module named oracle

ruby - 在 ruby​​ 中使用 sql loader

arrays - 为任何整数数组定义函数