C 将数据从文件读入数组
如果我有一个选项文件,内容如下:C 将数据从文件读入数组,c,file,io,C,File,Io,如果我有一个选项文件,内容如下: size = 4 data = 1100010100110010 我有一个2d大小*大小的数组,我想将数据中的值填充到其中,最好的方法是什么 为了澄清,对于我的示例,我想要一个如下的数组: int[4][4]数组={1,1,0,0},{0,1,0,1},{0,0,1,1},{0,0,1,0}。(不是真正的代码,但你明白了) 大小可以是任何数字 我想我必须读入大小,maloc一个数组,然后可能读入一个充满数据的字符串,然后循环遍历数据中的每个字符,将其转换为in
size = 4
data = 1100010100110010
我有一个2d大小*大小的数组,我想将数据中的值填充到其中,最好的方法是什么
为了澄清,对于我的示例,我想要一个如下的数组:
int[4][4]数组={1,1,0,0},{0,1,0,1},{0,0,1,1},{0,0,1,0}。(不是真正的代码,但你明白了)
大小可以是任何数字
我想我必须读入大小,maloc一个数组,然后可能读入一个充满数据的字符串,然后循环遍历数据中的每个字符,将其转换为int并将其粘贴到适当的索引中?但我真的不知道该怎么做,已经找了一段时间没有运气了
任何帮助都很酷!:) 循环
FILE *fp = fopen("waaa.txt", "r");
if(fp == null) { /* bleh */ return; }
int j = 0;
while(char ch = fgetc(fp)) {
for(int i = 0; i < 4; ++i) {
array[j][i] = ch;
}
++j;
}
FILE*fp=fopen(“waaa.txt”、“r”);
如果(fp==null){/*bleh*/return;}
int j=0;
while(char ch=fgetc(fp)){
对于(int i=0;i<4;++i){
数组[j][i]=ch;
}
++j;
}
我不确定fgetc()语法。。看看吧。它一次读取一个字符。int进程文件(int**array,char const*文件名)
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;
}
{
int size=0;
文件*FILE=fopen(文件名,“rt”);
如果(fp==null)
return-1;//无法打开文件
字符行[1024];//1024仅举个例子
如果(fgets(第1024行,文件)!=0)
{
如果(strncmp(行,“size=,7)!=0)
{
fcloes(文件);
return-2;//格式不正确
}
尺寸=atoi(第+7行);
数组=新整数*[size];
对于(int i=0;i
不要忘记在程序结束前删除数组 你的方法很好。向我们展示您迄今为止所做的尝试以及您的困境。