Naja, das ist doch gar nicht so schwer. Es gibt da zwei Ansätze. Der eine ist Text basierend, der andere Datenstrombasierend. Der Textbasierende dürfte jetzt aber wohl der sein, der gewünscht ist. Also
Inhalt der Datei mat.txt
|
Quellcode
|
1
2
3
4
|
4
2
1 2 3 4
1 2 3 4
|
Eine Erklärung dazu.
Es handelt hier eine Matrize der Form 4x2. Die erste Zahl gibt die Spalten vertikal an (4), die zweite die Spalten horizontal (2). Der nächste Block gibt den Inhalt der Matrize an.
|
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
29
30
31
32
33
34
35
36
|
FILE* pfile;
unsigned rows=0;
unsigned cols=0;
unsigned* mat;
// Datei probieren zu öffnen.
if((pfile = fopen("mat.txt", "r")) != NULL)
{
fscanf(pfile, "%d\n", &cols);
fscanf(pfile, "%d\n", &rows);
// Den speicher für eine Matrize reseervieren
mat = new unsigned[cols * rows];
// Einlesen
// ACHTUNG: Es wird immer eine Zahl von einem Leerzeichen
// getrennt. ("%d ").
// Es muss in der Text so aussehen:
// "1 2 3 4 "
// Man beachte auch das Leerzeichen am Ende.
//---------------------------------------------------
for(unsigned i = 0; i < cols * rows; i++)
fscanf(pfile, "%d ", &mat[i]);
// Ausgeben
for(unsigned i = 0; i < cols * rows; i++)
printf("%d ", mat[i]);
// Speicher wieder freigeben
delete[] mat;
// Datei schließen
fclose(pfile);
}
else printf("Datei konnte nicht geöffnet werden");
|
Weiterhin schau dir mal diese Funktion an:
|
Quellcode
|
1
|
GetPrivateProfileString
|
Oder den Read Ini Kram aus der Tribase.