Hallo. Ich mache gerade die Übung aus dem Buch, bei der man eine Matrix und Vektoren in eine Textdatei schreiben soll, die dann vom Programm gelesen wird. Um zu schauen, ob alles funktioniert soll einfach mal der Inhalt der Textdatei so ausgegeben werden, wie er später gelesen wird.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <TriBase.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
tbInit();
tbVFile* VFile = new tbVFile;
VFile->Init("Eingabe.txt");
void* pAusgabe;
VFile->Read(VFile->GetSize(), pAusgabe);
char* pcAusgabe = (char*)pAusgabe;
// das Ausrufezeichen markiert das Ende der Textdatei
while(*pcAusgabe != '!')
{
cout << *pcAusgabe;
pcAusgabe++;
}
tbExit();
return 0;
}
|
Die Datei Eingabe.txt sieht so aus:
Matrix 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Vector 1 2 3
Vector 1 0 1
!
Wenn ich das Programm laufen lasse, passieren 2 seltsame Dinge.
1. Vor der ersten Null erscheint ein Zeichen, das sich nicht in der Textdatei befindet. Z.b. wird "Matrix 1L0 0 0" oder "Matrix 1|0 0 0" ausgegeben.
2. Nachdem die letzte Zeile ausgegeben wurde erscheint eine Fehlermeldung: "Die Anweisung in "0x7c9..." verweist auf Speicher in "0x0a...". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden.
wenn ich mit dem Debugger Zeile für Zeile durchgehe erscheint diese Meldung nicht.