テキストファイルから数値を読み取って配列に格納しようとしています。 配列にある数字を読み取ろうとすると、出力がわずかにオフになります。 これは私のコードです:配列が正しく出力されない値
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);
}
私が使用してテストファイルは、次の桁
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
私が手出力がこれです含まれています
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
それは私がやっていることは何です違う?
これは奇妙です。関数で関数の使用が完了したら、ファイルを閉じてみてください。 – Shravan40
配列インデックスがオーバーフローしています。構造体ポイント内の 'x、y'配列は7つの数値しか保持できませんが、8に書き込もうとしています。配列サイズを拡張すると修正されます。 –
[正しいC書式設定](// prohackr112.tk/pcf)を調べてください。 –