Autsch, bei dir hapert es etwas mit C++-Kenntnissen.
1. endl heißt "endline", nicht als String quoten, sondern wirklich std:endl verwenden.
2. i=i++ -> ganz böse, da wird Blödsinn ausgeführt! Stattdessen ++i in for-Schleifen verwenden; Beispiel dazu:
Code:
int i = 0;
cout << i++ << endl;
cout << i++ << endl;
cout << ++i << endl;
cout << ++i << endl;
gibt
aus.
i++ gibt erst den aktuellen Wert von i zurück und erhöht danach, i wird im Speicher gehalten -> langsam, nach Möglichkeit vermeiden.
++i hingegen erledigt das in einem Rutsch: Erst erhöhen, dann zurückgeben.
Solange man keinen Vergleich mit postkrementierten oder prekrementierten Variablen macht, sollte man ++i verwenden.
Ich hab das nochmal überarbeitet:
Code:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
const int zeilen = 20; // zeilen
const int spalten = 50; // spalten
int z_auslesen[zeilen][spalten]; // ausgelesene Zahl
ifstream datei;
datei.open("../datei2.txt");
for (int i = 0; i < zeilen; ++i) // zeilen
for (int j = 0; j < spalten; ++j) // spalten
datei >> z_auslesen[i][j]; // Array auslesen
datei.close();
for (int i = 0; i < zeilen; ++i) // ausgeben der Werte
{
for (int j = 0; j < spalten; j = j++)
if (z_auslesen[i][j] == 0)
cout<<" ";
else
cout << "*";
cout << endl;
}
return 0;
}
Allerdings bin ich durch die merkwürdigen Konstrukte wie i < (zeilen-1) etwas verwirrt, der Sinn erschließt sich mir nicht...
Gib am Besten zu der Beispieldatei auch die Beispiellösung.
Lesezeichen