尝试从文本文件读取向量

时间:2019-03-19 15:25:28

标签: c++ vector text-files

    while (artist >> forname >> surname >> bandnum)
{
for (int i = 0; i <= bandnum; i++)
{
artist >> band[i];
}
for (int i = 0; i > bandnum; i++)
{
cout << band[i];
}
artist >> role;

以下代码是我尝试从文本文件读取矢量的方式,该格式如下所示

  

约翰·史密斯3 a b c歌手

必须先读出名字,名字,乐队编号,他们所演奏的乐队,然后才是他们的角色。 Artist是ifstream,bandnum是他们演奏的乐队数量,其中“ a b c”是他们的乐队。 band是一个向量,因为每个艺术家的乐队数量及其演奏的乐队会改变。当我尝试运行此代码时,代码中断,提示“向量下标超出范围”。我该怎么做才能解决此问题?

1 个答案:

答案 0 :(得分:0)

大胆猜测,您并未正确调整频段的大小(例如,零大小)。可能您需要使用push_back将项目添加到向量中。

while (artist >> forname >> surname >> bandnum)
{
    for (int i = 0; i < bandnum; i++)
    {
        string tmp;
        artist >> tmp;
        band.push_back(tmp);
    }
    artist >> role;
}