gpt4 book ai didi

C程序。从输入文件中获取最高数字,创建二维数组,然后从文件中读取网格

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

很抱歉,如果有人问过这个问题,我已经在这个网站上找了几个小时了,但还没有看到任何东西。

所以我正在读取一个看起来像这样的输入文件。顶行是一个 8x8 二维数组,然后是我必须排序的网格的其余行。基本上我用字母 +1 替换每个 *,所以 a、b、c 等,但这不是我的问题。

8   <---- The size of the array 8X8
**......
**..*..*
..**.**.
..**..*.
.*..*..*
..**.**.
..**.**.
.*..*..*

我的问题是,我怎样才能只读取输入文件的第一行来找到数组的大小,然后将其存储为我的数组的行和列,然后读取文件的其余部分(网格)和将字符存储到数组的行和列中?

这就是我目前所拥有的。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 9

void blobchecker(char[][N]);

main()
{
FILE *fp;
fp = fopen("blobfile.txt", "r");
if ((fp = fopen("blobfile.txt", "r")) == NULL)
printf("File not read \n");

int c;
char myarray[N][N];
int i, j;

fscanf(fp, "%d", &c);
fclose(fp);
fp = fopen("blobfile.txt", "r");
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
fscanf(fp, "%c", &myarray[i][j]);

for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
printf("%c", myarray[i][j]);

printf("\n Now checking for blobs \n");

// blobchecker(myarray);

fclose(fp);
}

最佳答案

试试这个:

int c;
char** myarray;
int i;
fscanf(fp, "%d", &c);
myarray = malloc(c*sizeof(char*));
for (i=0; i<c; i++)
myarray[i] = malloc(c);

不要忘记在稍后执行程序时释放分配的内存:

for (i=0; i<c; i++)
free(myarray[i]);
free(myarray);

关于C程序。从输入文件中获取最高数字,创建二维数组,然后从文件中读取网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35693327/

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