在向量中存储字符串会导致错误

时间:2012-05-01 00:12:06

标签: c++ string vector

我正在尝试存储我从std :: vector中的文件中读取的字符串,但是我得到了一个奇怪的错误......

所以我有容器:

std::vector<std::string> m_Strings;

然后我从流中读取字符串:

ifstream inStream;
char word[100];
//[...]
inStream >> word;
m_Strings.push_back(word);

即使向量为空,当我插入第一个字符串时,向量调整大小以容纳8个字符串,索引0处的字符串包含随机字符,索引1包含正确的字,而其他索引包含无效指针。

有什么可能导致这种情况的想法吗?

编辑:在这种情况下,我正在读取字符串“DIRECTIONAL_LIGHT”,因此它适合char word[100]

1 个答案:

答案 0 :(得分:3)

刚刚将char word[100];更改为std::string word;,错误消失了。