gpt4 book ai didi

c - 将文件中的数据读入数组

转载 作者:行者123 更新时间:2023-11-30 18:06:42 25 4
gpt4 key购买 nike

如果我有一个与此类似的选项文件:

size = 4
data = 1100010100110010

我有一个 2d size * size 数组,我想将数据中的值填充到其中,最好的方法是什么?

为了澄清,对于我的例子,我想要一个像这样的数组:

int[4][4] 数组 = {{1,1,0,0}, {0,1,0,1}, {0,0,1,1}, {0,0,1, 0}}。 (不是真正的代码,但你明白了)。

大小实际上可以是任何数字。

我想我必须读取大小,maloc 一个数组,然后可能读取一个充满数据的字符串,然后循环遍历数据中的每个字符,将其转换为 int 并将其粘贴到适当的位置指数?但我真的不知道如何去做,已经搜索了一段时间但没有运气。

任何帮助都会很酷! :)

最佳答案

int process_file(int **array, char const *file_name)
{
int size = 0;
FILE *file = fopen(file_name, "rt");
if(fp == null)
return -1;//can't open file
char line[1024]; //1024 just for example
if(fgets(line, 1024, file) != 0)
{
if(strncmp(line, "size = ", 7) != 0)
{
fcloes(file);
return -2; //incorrect format
}
size = atoi(line + 7);
array = new int * [size];
for(int i = 0; i < size; ++i)
array[i] = new int [size];
}
else
{
fclose(file);
return -2;//incorrect format
}
if(fgets(line, 1024, file) != 0)
{
if(strncmp(line, "data = ", 7) != 0)
{
fcloes(file);
for(int i = 0; i < size; ++i)
delete [] array[i];
delete [] array;
return -2; //incorrect format
}
for(int i = 7; line[i] != '\n' || line[i] != '\0'; ++i)
array[(i - 7) / size][(i - 7) % size] = line[i] - '0';
}
else
{
fclose(file);
for(int i = 0; i < size; ++i)
delete [] array[i];
delete [] array;
return -2; //incorrect format
}
return 0;
}

不要忘记在程序结束前删除数组;

关于c - 将文件中的数据读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5367372/

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