从c中的文本文件中读取矩阵
Reading a matrix from a text file in c
我正在尝试读取文本文件并将数据存储在矩阵中。我在阅读每一行后打印结果并且看起来它正在工作,但是如果我在最后打印矩阵,我没有相同的结果。我找不到我做错了什么!
int main()
{
int i,j;
double value[10000][2];
FILE *archivo;
archivo = fopen("pruebas.txt","r");
if (archivo == NULL)
exit(1);
i=0;
while (feof(archivo) == 0)
{
fscanf( archivo, "%lf %lf %lf", &value[i][0],&value[i][1],&value[i][2]);
printf("%10.0f %f %f\n", value[i][0], value[i][1], value[i][2]);
i++;
}
printf("Your matrix:\n");
for(j = 0; j < i; j++)
printf("%10.0f %10.3f %10.3f\n", value[j][0], value[j][1], value[j][2]);
fclose(archivo);
return 0;
}
这是程序的输出:
1 2 3
4 5 6
7 8 9
Your matrix:
1 2 4
4 5 7
7 8 9
您声明 double value[10000][2];
但随后访问 value[i][2]
。用 [2]
声明的数组包含 2 个元素,索引为 0
和 1
。访问索引“2”正在覆盖其他内存。
使用
double value[10000][3];
我正在尝试读取文本文件并将数据存储在矩阵中。我在阅读每一行后打印结果并且看起来它正在工作,但是如果我在最后打印矩阵,我没有相同的结果。我找不到我做错了什么!
int main()
{
int i,j;
double value[10000][2];
FILE *archivo;
archivo = fopen("pruebas.txt","r");
if (archivo == NULL)
exit(1);
i=0;
while (feof(archivo) == 0)
{
fscanf( archivo, "%lf %lf %lf", &value[i][0],&value[i][1],&value[i][2]);
printf("%10.0f %f %f\n", value[i][0], value[i][1], value[i][2]);
i++;
}
printf("Your matrix:\n");
for(j = 0; j < i; j++)
printf("%10.0f %10.3f %10.3f\n", value[j][0], value[j][1], value[j][2]);
fclose(archivo);
return 0;
}
这是程序的输出:
1 2 3
4 5 6
7 8 9
Your matrix:
1 2 4
4 5 7
7 8 9
您声明 double value[10000][2];
但随后访问 value[i][2]
。用 [2]
声明的数组包含 2 个元素,索引为 0
和 1
。访问索引“2”正在覆盖其他内存。
使用
double value[10000][3];