PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ - Zeile einer Matrix aus Datei einlesen/in Datei ausgeben


gasmeister
2008-07-17, 19:55:30
Hi

Ich studiere Maschinenbau im 2. Semester und wir haben da Informatik(nur C++).

Da gibt es einen bestimmten Aufgabentyp, in der eine Matrix(2 dimensionales Array) aufgebaut werden soll und damit sollen dann halt verschiedene Dinge gemacht werden.

Hier mal der Quellcode zum aufbauen der Matrix:

#include <iostream>
using namespace std;


int einlesen();

int B[3][6];

//3 Zeilen/6 Spalten

int einlesen()
{
int i,j;
int k=1;
for (i=0; i<3; i++) {
for (j=0; j<6; j++) {
cout << k << ". Element: ";
cin >> B[i][j];
k++;
}
}
return 0;
}

So nun möchte ich die 1. Zeile aber nicht per Hand eingeben, sondern aus einer Datei einlesen.
Wie stelle ich das an?

Ebenso würde es mich interessieren, wie ich eine Zeile in eine Datei ausgebe.

mfG

Trap
2008-07-17, 20:00:42
#include <fstream>
und ifstream (anstelle von cin) oder ofstream (anstelle von cout)

Genaueres steht z.B. unter http://www.cplusplus.com/reference/iostream/fstream/

gasmeister
2008-07-17, 20:10:31
Danke für deine Antwort.
Angenommen ich habe eine Datei
C:\zahlen.*

Welches Format muss die Datei haben?

Also der veränderte Quellcode sollte dann wohl etwa so aussehen:

#include <iostream>
using namespace std;


int einlesen();

int B[3][6];

//3 Zeilen/6 Spalten

int einlesen()
{
int i,j;
int k=1;

B[0][j]=???ifstream 1. Zeile aus Zahlen.*???

for (i=1; i<3; i++) {
for (j=0; j<6; j++) {
cout << k << ". Element: ";
cin >> B[i][j];
k++;
}
}
return 0;
}

Nur wie genau?

mfG

Trap
2008-07-17, 20:29:45
Welches Format muss die Datei haben?
Das einfachste ist durch Leerzeichen oder Zeilenumbrüche getrennt. So wie man es auch auf der Console eingibt.

Änderung am Code:
int einlesen()
{
ifstream fin("zahlen.dat"); //und dann fin statt cin benutzen

gasmeister
2008-07-17, 21:46:40
Klasse du hast mir sehr geholfen.
Klappt einwandfrei.
Vielen Dank.

mfG