C++无法从 2D 字符串数组读取
C++ cannot read from 2D string array
这种寒冷真的很明显,但我大约 15 年没有做过C++,所以提前感谢。我有一个 2D 字符串数组,当我从中读取时,我得到这个:0x22fc90
这是我的代码,有什么想法吗?
std::string results[3][3] = {
{"Draw", "Win", "Lose"} , /* initializers for row indexed by 0 */
{"Lose", "Draw", "Win"} , /* initializers for row indexed by 1 */
{"Win", "Lose", "Draw"} /* initializers for row indexed by 2 */
};
cout << "It's a " << results[choice,compChoice];
choice 和 compChoice 是整数
例如,
多维数组的C++语法和 C# 语法之间存在差异。您在此语句中编写的与访问数组元素相关的内容
cout << "It's a " << results[choice,compChoice];
在 C# 中有效,并按照您的意思执行。
C++本声明
cout << "It's a " << results[choice,compChoice];
也是有效的,但其含义不同。在下标运算符中使用了所谓的逗号运算符results[choice,compChoice]
实际上等同于results[compChoice]
只是第一个子表达式不会被计算。因此,results[compChoice]
给出了一行二维数组,operator<<
输出其地址。
你想要的是以下内容
cout << "It's a " << results[choice][compChoice];
使用 results[choice][compChoice]
访问数组。
那是因为二维数组实际上是数组的数组。
首先,您需要进入results[choice]
,然后从中选择[compChoice]
。
choice,compChoice
的计算结果只是compChoice
,所以你只是输出指向results
中第 choice
个数组开头的指针。请改用results[choice][compChoice]
。
结果是一个数组数组。尝试通过以下方式访问
results[choice][compChoice]
所以 results[choice] "返回"一个数组,你可以用另一个 [] 运算符访问该数组。据我所知,一对括号不支持多个索引。
谢谢大家。我很高兴这是一个语法问题,我不是完全错过了重点!
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组