我正在尝试将文本文件中的行放入string
的数组中,但是我得到一个异常抛出,坦率地说,我对于我应该做什么一无所知。
以下是处理文件的代码:
ifstream names("Vehicle_names.txt");
string vehnames[54];
if (names.bad())
{
return 1;
}
while (names)
{
names >> vehnames[i++];
}
i = 0;
while (i < 54)
{
cout << endl << vehnames[i];
i++;
}
在iosfwd中的以下行旁边抛出异常:
static void __CLRCALL_OR_CDECL assign(_Elem& _Left, const _Elem& _Right) _NOEXCEPT
{ // assign an element
_Left = _Right;
}
错误说:
Excpetion thrown: write access violation
_Left was 0xCCCCCCCC.
如果你可以帮我解决这个问题,我真的很感激,我很想尝试做点什么。
如果有帮助,我正在使用Visual Studio 2017编写。
答案 0 :(得分:0)
首先,看起来您使用 i 而未声明 i 。接下来,确保 i 没有指向没有找到任何内容的地方。也许尝试这样的事情......
ifstream names("Vehicle_names.txt");
int i = 0;
string vehnames[1028]; //ensure there is enough memory allocated to store txt file in string array
if (names.bad())
return 1;
while (names.good())
names >> vehnames[i++];
int j = 0;
while(j<i)
cout << vehnames[j++] << endl;
return 0;
虽然,解决方案并不重要。尝试了解代码的工作原理。 ...并坚持下去!