我无法弄清楚我的代码有什么问题。我使用添加手表来确保正确读取信息并输入到阵列中。我得到的错误是:
访问违规写入位置。
yo ./node_modules/some-generator/app
答案 0 :(得分:1)
首先,你不应该在C ++中循环使用eof。
然后你应该确保numQ
和numA
不会越界,因为它们的值取决于文件内容:
...
while (getline(SaveFile, temp, '#'))
{
if (temp.length() > 5)
{
if (numQ>=50)
cerr << "Ouch ! numQ=" <<numQ<<endl;
else arrayQ[numQ] = temp;
numQ++;
}
else
{
if (numA>=50)
cerr << "Ouch ! numA=" <<numA<<endl;
else arrayA[numA] = temp;
numA++;
}
}
最后,您可以考虑使用vector<string>
而不是字符串数组。在这种情况下,您只需push_back()
右矢量中的字符串,而不必担心预定的大小。