Du liest zu viele Daten ein und überschreitest die grenzen deines Arrays!
Du musst diesen Block erweitern
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
if(a != L'\n')
{
c[i] = a;
wcout << c[i] << endl;
i++;
}
|
Denn eigentlich ist '\n' nicht ausreichen um eine neue Zeile zu beginnen, da ja nur in die nächste Zeile gerückt wird. Eigentlich muss der Cursor erst an den Anfang der Zeile gerückt werden, was auch viele Editoren machen. Das Zeichen hierfür is '\r' und wird in der Kombination "\r\n" verwendet.
Also schreib den Block so um
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
if(a != L'\n' && a != L'\r')
{
c[i] = a;
wcout << c[i] << endl;
i++;
}
|
Generell finde ich deine Art sehr gefährlich, da dein Programm bei falschem Input zwangsläufig abstürzt. Du solltest vorher die ganze Datei durchlaufen und zählen wie viele Zeichen vorhanden sind. Bzw. wie viele Zeichen vorhanden sind die du auswerten willst.