C++ 试图从文本文件中读取向量 while(艺术家>>forname>>姓氏>>bandnum) { 对于(int i=0;i>band[i]; } 对于(int i=0;i>bandnum;i++) { 角色;
下面的代码是我如何尝试从文本文件中读取向量的,如下所示 约翰·史密斯是一名b-c歌手C++ 试图从文本文件中读取向量 while(艺术家>>forname>>姓氏>>bandnum) { 对于(int i=0;i>band[i]; } 对于(int i=0;i>bandnum;i++) { 角色;,c++,vector,text-files,C++,Vector,Text Files,下面的代码是我如何尝试从文本文件中读取向量的,如下所示 约翰·史密斯是一名b-c歌手 顺序必须以名字、第二个名字、乐队编号、他们演奏的乐队以及他们的角色来读出。Artist是ifstream,bandnum是他们演奏的乐队数量,带有“a b c”作为他们的乐队。乐队是一个向量,因为乐队的数量以及他们为每个艺术家演奏的乐队都会发生变化。当我尝试运行此功能时,代码会显示“矢量下标超出范围”。我能做些什么来修复此问题?猜测一下,您没有正确调整乐队的大小(例如,它的大小为零)。您可能需要使用push_b
顺序必须以名字、第二个名字、乐队编号、他们演奏的乐队以及他们的角色来读出。
Artist
是ifstream,bandnum
是他们演奏的乐队数量,带有“a b c”作为他们的乐队。乐队是一个向量,因为乐队的数量以及他们为每个艺术家演奏的乐队都会发生变化。当我尝试运行此功能时,代码会显示“矢量下标超出范围”。我能做些什么来修复此问题?猜测一下,您没有正确调整乐队的大小(例如,它的大小为零)。您可能需要使用push_back
将项目添加到向量中
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;
while(艺术家>>forname>>姓氏>>bandnum)
{
对于(int i=0;i>tmp;
波段推回(tmp);
}
艺术家>>角色;
}
两种循环条件都没有多大意义。我认为在这两种情况下,您都希望是band.size()>=bandnum
true?您的帖子不包含任何设置其大小的内容。@Shawn是的,它是equalGood。下一步修复前面提到的for循环问题。这样做了,但它甚至没有进入第二个循环,它在'Artister>>band[i];'处中断;
while (artist >> forname >> surname >> bandnum)
{
for (int i = 0; i < bandnum; i++)
{
string tmp;
artist >> tmp;
band.push_back(tmp);
}
artist >> role;
}