【发布时间】:2013-10-11 21:58:13
【问题描述】:
我试图将数字和字母列表读入std::vector<char>。由于它产生错误,我只尝试读取数字:
#include <vector>
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
vector<char> zahlen;
for (int i = 0; i < 10; ++i)
{
zahlen.push_back(i);
}
for (int i = 0; i < zahlen.size(); ++i)
{
cout<<zahlen[i];
}
cout<<endl;
return 0;
}
这会产生一些奇怪的输出。我究竟做错了什么?如何在向量或其他容器中存储多种类型的数据?
编辑:
cout<<(int)zahlen[i];
这完成了显示内容的工作,但我如何识别不同类型的数据?
【问题讨论】:
-
"如何在向量或其他容器中存储多种类型的数据?"您不能直接(在
std::vector中)。你想达到什么目的(为什么要将数字和字母存储在同一个vector中)? -
"这会产生一些奇怪的输出。"由于
vector的元素属于char类型,因此使用cout << zahlen[i]会输出解释为字符的数字。 -
你想做的是
cout << (int)zahlen[i];。 (或者cout << static_cast<int>(zahlen[i]);,不管你的船是什么)。更好的是,使用std::vector<int>应该可以解决问题。 :V -
所以 (int)zahlen[i] 做得很好,但是如何识别输入的类型呢?
-
什么是“奇怪的输出”?