Hallo,
eine so ähnliche Frage wurde in diesem Forum bestimmt schon mehrere Male gestellt, aber ich habe bisher nicht eine Antwort für genau mein Problem gefunden. Deshalb versuche ich mein Glück einfach nochmal und hoffe, dass ihr Verständniss dafür habt.
Ich habe eine Textdatei in der Zahlen drinstehen. Die Zahlen sind Dezimalzahlen mit mehreren Nachkommastellen, die positiv und negativ sein können (also vom Typ double Zahlen sind.) Es sind sechs Spalten in denen die Zahlen stehen, die durch ein LEERZEICHEN getrennt sind. Die Zeilenanzahl ist z.B. 4.
Hier ein kleines Beispiel für den Inhalt der Textdatei:
0.0001 0.000003 0.0001 2.4444 1.6654 7.003
0.005 3.4444 -1.493844 -0.0002 0.003 4.333
-0.7777 0.22 3.4444 0.0009 0.4444 1.4444
-1.493844 0.444 0.33 0.007 -3.555 6.444
Diese Werte möchte ich nun von der Textdatei namens B_data.txt einlesen und in ein double array [4][6] speichern, sodass ich später problemlos die einzelnen Elemente des Array abrufen kann. Ich habe einiges ausprobiert aber es geht einfach nicht und ich sitze schon seit längerem daran
((((((((((
Mein C-Code sieht folgendermaßen aus:
Hier ist eine weitere Variante, bei der ich auch kein Erfolg hatte:
Bei der zwiten Variante bekomme ich immer ein "Cannot open file" zu lesen. Ich weiß einfach nicht mehr weiter bzw. wo der Fehler liegt, da beide c-Codes sich fehlerfrei kompilieren lassen; nur das Ausführen geht immer voll in die Hose. Ich wäre wäre euch wirklich sehhhhhhr dankbar wenn ihr mir helfen könnt, mein Problem zu lösen.
Viele Grüße,
ania
eine so ähnliche Frage wurde in diesem Forum bestimmt schon mehrere Male gestellt, aber ich habe bisher nicht eine Antwort für genau mein Problem gefunden. Deshalb versuche ich mein Glück einfach nochmal und hoffe, dass ihr Verständniss dafür habt.
Ich habe eine Textdatei in der Zahlen drinstehen. Die Zahlen sind Dezimalzahlen mit mehreren Nachkommastellen, die positiv und negativ sein können (also vom Typ double Zahlen sind.) Es sind sechs Spalten in denen die Zahlen stehen, die durch ein LEERZEICHEN getrennt sind. Die Zeilenanzahl ist z.B. 4.
Hier ein kleines Beispiel für den Inhalt der Textdatei:
0.0001 0.000003 0.0001 2.4444 1.6654 7.003
0.005 3.4444 -1.493844 -0.0002 0.003 4.333
-0.7777 0.22 3.4444 0.0009 0.4444 1.4444
-1.493844 0.444 0.33 0.007 -3.555 6.444
Diese Werte möchte ich nun von der Textdatei namens B_data.txt einlesen und in ein double array [4][6] speichern, sodass ich später problemlos die einzelnen Elemente des Array abrufen kann. Ich habe einiges ausprobiert aber es geht einfach nicht und ich sitze schon seit längerem daran

Mein C-Code sieht folgendermaßen aus:
PHP:
#include <stdio.h>
int main ()
{
int rows,columns,j,k;
FILE* fp; /* pointer to the txt file */
double gradB[4][6];
rows = 4;
columns = 6;
fp = fopen("B_data.txt","r");
for(j = 0; j < rows; j++) /* Zeilen durchlaufen */
{
for(k = 0; k < columns; k++) /* Spalen durchlaufen */
{
fscanf(fp, "%lf", &gradB[j][k]);
}}
printf("%d\n",gradB[1][1]); /* hier möchte ich als Test ein Element der Matrix ausgegeben */
}
Hier ist eine weitere Variante, bei der ich auch kein Erfolg hatte:
PHP:
#include<stdio.h>
#include<stdlib.h>
int main()
{
/* define variables */
FILE *fp;
double B[4][6];
int j=0,k=0;
/* Show error message when the file doesn't exist in the current directory */
if((fp=fopen("B_data.txt","r"))== NULL)
{
printf("Cannot open file\n");
exit(1);
}
while(!feof(fp))
{
for(j=0;j<4;j++)
{
for(k=0;k<6;k++)
{
fscanf(fp,"%lf",&(B[j][k]));
printf("%f",B[j][k]);
}
printf("\n");
}
}
fclose(fp);
}
Viele Grüße,
ania