Ich versuche, Zahlen aus einer Textdatei zu lesen und sie in einem Array zu speichern. Wenn ich versuche, die im Array vorhandenen Zahlen zu lesen, ist die Ausgabe etwas aus. Dies ist mein Code:Array druckt nicht korrekt Werte
struct point{
double x[7];
double y[7];
}point;
int main()
{
FILE *fp;
fp = fopen("data_2.txt", "r");
struct point points;
int len = 8;
int i = 0;
int j = 0;
int k = 0;
double a = 0;
double b = 0;
double c = 0;
double total = 0;
int left=0;
int right=0;
int line = 0;
for (i=0;i<len;i++)
{
fscanf(fp, "%lf %lf", &points.x[i],&points.y[i]);
}
for(i = 0; i < len;i++)
printf("looking at point %.2f %.2f\n",points.x[i],points.y[i]);
return(0);
}
die Testdatei Ich benutze enthält folgende Ziffern
2.3 7.5
7.6 7.1
8.5 3.0
5.9 0.7
1.0 2.0
5.1 5.8
4.0 4.5
4.3 3.4
Der Ausgang I erhalten, ist dies:
looking at point 2.30 4.30
looking at point 7.60 7.10
looking at point 8.50 3.00
looking at point 5.90 0.70
looking at point 1.00 2.00
looking at point 5.10 5.80
looking at point 4.00 4.50
looking at point 4.30 3.40
Was ist das, was ich tue, falsch?
Das ist seltsam. Versuchen Sie, die Datei zu schließen, sobald die Nutzung abgeschlossen ist. – Shravan40
Sie haben einen Überlauf von Array-Indizes. Array 'x, y' im struct-Punkt kann nur 7 Zahlen enthalten, aber Sie versuchen, in 8 zu schreiben. Wenn Sie die Array-Größe erweitern, wird das Problem behoben. –
Sie sollten in [richtige C-Formatierung] (// prohackr112.tk/pcf) schauen. –