gpt4 book ai didi

c - 将文本文件中的数字读入动态分配的二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:26 24 4
gpt4 key购买 nike

首先,我并不是要别人帮我做功课,只是为了帮助我解决我遇到的问题。其次,我不是 C 专家,所以请原谅任何不符合标准的做法。第三,提前感谢您的帮助 =)

好的...

我得到了这样一个文本文件:

4 6
010000
011010
011010
101100

前两位数字是行数和列数。

我应该将其读入动态分配的二维数组,以便我可以操作数组中的特定数字。

我已经将 4 和 6 存储到变量中,没有问题,并且正确地创建了数组并分配了空间。我似乎无法弄清楚如何将所有 0 和 1 放入数组中。我一直在四处寻找一段时间,但没有任何运气。

我也不允许在我的程序中的任何地方使用 [],我们专注于指针,所以它必须全部用指针来完成。但是,如果我可以使用 [] 符号获得一个可行的解决方案,我可以稍后尝试将其设为所有指针,但现在我无法通过任何一种方式正常工作。

这是我正在编写的接收已打开文件的函数:

 void image(FILE *fp){
int row =0, col=0, i=0, j=0;
int **image;

fscanf(fp, "%d %d", &row, &col);

image = (int**) malloc(row*sizeof(int*));

for (i = 0; i < row; i++){
*(image+i) = (int*) malloc(col*sizeof(int));

for(j=0; j< col; j++){
//TRIED THIS BUT IT DOESNT WORK
fscanf(fp, "%d", &image[i][j]);
}
printf("%d\n", **(image+i));
}
}

这是我尝试过的其他几种方法中的一种。就像我说的,我愿意找到一种首先使用 [] 的方法,然后尝试将其转换为指针。我希望有人能给我建议,因为我有点迷路。无论哪种方式,再次感谢您的帮助!!!

~B.

最佳答案

尝试:

  for(j = 0; j < col; j++) {
if (!fscanf(fp, " %c", &image[i][j])) /* Also note the space */
break;

image[i][j] -= '0'; /* Or you can go `if (image[i][j] == '0')`.. */
}

关于c - 将文本文件中的数字读入动态分配的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com