写一段vitis c代码实现读取文件读取的文件里面数字是以空格或者换行来分割的将这些数字转化为一个三维数组
以下是一个简单的示例代码:
#include <stdio.h>
#include <stdlib.h>
#define DIM1 3
#define DIM2 4
#define DIM3 5
int main(void) {
int arr[DIM1][DIM2][DIM3];
char filename[] = "data.txt";
FILE *fp;
int i, j, k;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening file %s.\n", filename);
exit(1);
}
for (i = 0; i < DIM1; i++) {
for (j = 0; j < DIM2; j++) {
for (k = 0; k < DIM3; k++) {
if (fscanf(fp, "%d", &arr[i][j][k]) != 1) {
printf("Error reading number from file %s.\n", filename);
exit(1);
}
}
}
}
fclose(fp);
// print the array for verification
for (i = 0; i < DIM1; i++) {
for (j = 0; j < DIM2; j++) {
for (k = 0; k < DIM3; k++) {
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
在这个示例中,我们首先定义了一个大小为3x4x5的三维数组arr。我们打开名为data.txt的文件,并使用fscanf函数从文件中读取数字。在每次循环中,我们读取一个数字并将其存储在数组的相应位置上。最后,我们关闭文件并打印数组以进行验证。
请注意,此示例假定文件中有足够的数字以填充整个数组。如果文件中的数字不足,程序将退出并显示错误消息。如果文件中的数字太多,则只读取前DIM1 * DIM2 * DIM3个数字。如果您需要更好的错误处理或更灵活的数组大小,请根据需要进行更改
原文地址: https://www.cveoy.top/t/topic/eF5Z 著作权归作者所有。请勿转载和采集!