为什么我不能使用 cout 在 C++ 中打印字符串值数组?
Why can't I use cout to print an array of string values in C++?
这是我正在编写的一个非常简单的程序的代码片段。我是C++的新手,但有Java背景,所以我可能对打印值的工作方式有先入为主的看法。我的问题是当我做这行:
cout << "Please enter the weight for edge " << verticies[i] << endl;
我得到一条错误消息,说操作数与<lt;。基本上它是说我不能做cout<lt;垂直线[i]。
为什么会发生这种情况?
这是代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string verticies[6] = { "AB", "AC", "AD", "BC", "BD", "CD" };
int edges[6];
for (int i = 0; i < 6; i++)
{
cout << "Please enter the weight for edge " << verticies[i] << endl;
}
system("PAUSE");
return 0;
}
尝试包含<string>
,应该足够
您必须包含标头<string>
,该标头包含类别std::basic_string
的定义,包括std::string
正是在这个标头中定义了operator <<
。
还要考虑使用类std::map代替数组。对于示例
std::map<std::string, int> verticies =
{
{ "AB", 0 }, { "AC", 0 }, { "AD", 0 }, { "BC", 0 }, { "BD", 0 }, { "CD", 0 }
};
如果不编译代码,则在初始值设定项列表中显式指定std::pair。例如
{ std::pair<std::string, int>( "AB", 0 ), std::pair<std::string, int>( "AC", 0 ), ...}
相关文章:
- C++ |<<运算符重载和打印字符串
- 反向打印字符串
- C++ 用于在数组中打印字符串的随机数
- C 不打印字符串
- 如何在没有同步的情况下使用多个线程(2、4,8、16 个线程)在循环(10,100、1000 个周期)中打印字符串?
- 尝试打印字符串时"Python Exception <class 'gdb.error'> There is no member named _M_dataplus."
- 使用带有 std::cout 的单引号打印字符串实际上打印了数字
- 使用迭代从链表向后打印字符串
- 如何打印字符串而不是数字
- 使用 for 循环打印字符串数组无法正常工作 (C++)
- C++ 打印字符串的内容
- 如何在空格后打印字符串的其余部分
- 如何在C 中打印字符串向量的向量
- 当我打印字符串时,我不知道它是什么输出
- 尝试以随机字符(长读取)打印字符串返回结果
- 从左到右打印字符串的组合(不是排列)c++
- cout 不能一致地打印字符串和变量值,导致输出未对齐
- C++ cout 在擦除换行符后打印字符串不正确
- 从对象数组打印字符串对象
- C++ 粘贴值和打印字符串