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
是一个向量,因为每个艺术家的乐队数量及其演奏的乐队会改变。当我尝试运行此代码时,代码中断,提示“向量下标超出范围”。我该怎么做才能解决此问题?
答案 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;
}