Ich versuche, Zeilen aus einer Textdatei in ein Array von string
zu setzen, aber ich bekomme eine Ausnahme geworfen und ehrlich gesagt bin ich ahnungslos, was ich tun soll.Ausnahme beim Versuch, ifstream zu verwenden
Hier ist das Stück Code, um die Datei Handhabung:
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++;
}
Die Ausnahme neben der folgenden Zeile in iosfwd geworfen wird:
static void __CLRCALL_OR_CDECL assign(_Elem& _Left, const _Elem& _Right) _NOEXCEPT
{ // assign an element
_Left = _Right;
}
Und der Fehler sagt:
Excpetion thrown: write access violation
_Left was 0xCCCCCCCC.
Ich würde es wirklich schätzen, wenn Sie mir dabei helfen könnten, ich werde verrückt, wenn ich versuche, etwas dagegen zu tun.
Ich schreibe mit Visual Studio 2017, wenn es hilft.
Zeit zum Kennenlernen [Ihres Debuggers] (https://msdn.microsoft.com/en-us/library/k0k771bt.aspx) –
Die 'Schreibzugriffsverletzung' ist fast sicher, weil Sie 'i' verwenden als Array-Index in 'vehnames' bevor' i' jemals initialisiert wird; Sie können also nicht vorhersagen, was der Wert von i sein könnte. Es kann alles sein, und C++ überprüft zur Laufzeit nicht, dass Sie nur Indizes im Bereich von einfachen Arrays verwenden. Stattdessen erhalten Sie wahrscheinlich eine Ausnahme vom Betriebssystem selbst, wenn festgestellt wird, dass Sie versuchen, auf Speicher zuzugreifen, den Sie nicht verwenden sollten. –