hallo liebe community, für eine Studienarbeit muss ich eine 103x103 Matrix aus einer .txt Datei in ein Array[x][y] einlesen. Zur kontrolle möchte ich die eingelesenen Werte in eine Prüfdatei schreiben und in der Konsole anzeigen.
wie man sieht hab ich das bisher mit fscanf gelöst, da ich mich mit den ganzen stream-Sachen nicht sonderlich auskenne und fscanf bisher immer gut funktioniert hat
mein problem ist jetzt aber, das die ausgelesenen Zahlen nicht die aus der Datei sind (liegen so zwischen 0 und 500 und sind mit TAB getrennt; wie gesagt 103 spalten und 103 Zeilen) sondern Werte in dieser größe: -92559631349317831000000000000000000000000000000000000000000000.000000
da ich so einen Fehler noch nie gehabt habe bin ich mitlerweile schon ziemlich verzweifelt
Code:
void Datei_Spot_einlesen(char *Datei_Spot, double spot[][SPOTSPALTEN])
{
int Zeilen = 0, Spalten = 0;
FILE *DS_einlesen;
FILE *DS_ausgabe;
cout << "Einlesen der Spot-Datei beginnt." <<endl;
DS_einlesen = fopen(Datei_Spot, "r");
for (Zeilen=0 ; Zeilen <= 102; Zeilen++)
{
fscanf_s(DS_einlesen, "%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\n",&spot[Zeilen][0],&spot[Zeilen][1],&spot[Zeilen][2],&spot[Zeilen][3],&spot[Zeilen][4],&spot[Zeilen][5],&spot[Zeilen][6],&spot[Zeilen][7],&spot[Zeilen][8],&spot[Zeilen][9],&spot[Zeilen][10],&spot[Zeilen][11],&spot[Zeilen][12],&spot[Zeilen][13],&spot[Zeilen][14],&spot[Zeilen][15],&spot[Zeilen][16],&spot[Zeilen][17],&spot[Zeilen][18],&spot[Zeilen][19],&spot[Zeilen][20],&spot[Zeilen][21],&spot[Zeilen][22],&spot[Zeilen][23],&spot[Zeilen][24],&spot[Zeilen][25],&spot[Zeilen][26],&spot[Zeilen][27],&spot[Zeilen][28],&spot[Zeilen][29],&spot[Zeilen][30],&spot[Zeilen][31],&spot[Zeilen][32],&spot[Zeilen][33],&spot[Zeilen][34],&spot[Zeilen][35],&spot[Zeilen][36],&spot[Zeilen][37],&spot[Zeilen][38],&spot[Zeilen][39],&spot[Zeilen][40],&spot[Zeilen][41],&spot[Zeilen][42],&spot[Zeilen][43],&spot[Zeilen][44],&spot[Zeilen][45],&spot[Zeilen][46],&spot[Zeilen][47],&spot[Zeilen][48],&spot[Zeilen][49],&spot[Zeilen][50],&spot[Zeilen][51],&spot[Zeilen][52],&spot[Zeilen][53],&spot[Zeilen][54],&spot[Zeilen][55],&spot[Zeilen][56],&spot[Zeilen][57],&spot[Zeilen][58],&spot[Zeilen][59],&spot[Zeilen][60],&spot[Zeilen][61],&spot[Zeilen][62],&spot[Zeilen][63],&spot[Zeilen][64],&spot[Zeilen][65],&spot[Zeilen][66],&spot[Zeilen][67],&spot[Zeilen][68],&spot[Zeilen][69],&spot[Zeilen][70],&spot[Zeilen][71],&spot[Zeilen][72],&spot[Zeilen][73],&spot[Zeilen][74],&spot[Zeilen][75],&spot[Zeilen][76],&spot[Zeilen][77],&spot[Zeilen][78],&spot[Zeilen][79],&spot[Zeilen][80],&spot[Zeilen][81],&spot[Zeilen][82],&spot[Zeilen][83],&spot[Zeilen][84],&spot[Zeilen][85],&spot[Zeilen][86],&spot[Zeilen][87],&spot[Zeilen][88],&spot[Zeilen][89],&spot[Zeilen][90],&spot[Zeilen][91],&spot[Zeilen][92],&spot[Zeilen][93],&spot[Zeilen][94],&spot[Zeilen][95],&spot[Zeilen][96],&spot[Zeilen][97],&spot[Zeilen][98],&spot[Zeilen][99],&spot[Zeilen][100],&spot[Zeilen][101],&spot[Zeilen][102]);
}//for (Zeilen...
Zeilen = 0; //zurücksetzten des Integer Zeilen auf 0
fclose(DS_einlesen);
DS_ausgabe=fopen("zwischenstand.txt", "w");
for (Zeilen=0; Zeilen <= 102; Zeilen++)
{
for (Spalten=0; Spalten <= 102; Spalten++)
{
cout << ("\t%lf", spot[Zeilen][Spalten]);
fprintf_s(DS_ausgabe, "%lf\t", spot[Zeilen][Spalten]);
}//for Spalten...
cout << "\n" << endl;
fprintf_s(DS_ausgabe, "\n");
}//for (Zeilen...
fclose(DS_ausgabe);
cout << "Einlesen der Spot-Datei beendet." <<endl;
}
wie man sieht hab ich das bisher mit fscanf gelöst, da ich mich mit den ganzen stream-Sachen nicht sonderlich auskenne und fscanf bisher immer gut funktioniert hat
mein problem ist jetzt aber, das die ausgelesenen Zahlen nicht die aus der Datei sind (liegen so zwischen 0 und 500 und sind mit TAB getrennt; wie gesagt 103 spalten und 103 Zeilen) sondern Werte in dieser größe: -92559631349317831000000000000000000000000000000000000000000000.000000
da ich so einen Fehler noch nie gehabt habe bin ich mitlerweile schon ziemlich verzweifelt
Zuletzt bearbeitet: