【发布时间】:2015-01-24 17:05:36
【问题描述】:
我正在尝试从文件中读取数字。文件格式如下:
2 4 5 7
3 2 4 7
我尝试使用fscanf 收集所有数字到换行符并将数字存储在一个数组中,与第二行相同。但直接从第二行开始不会再次开始并将其存储在另一个数组中。是否可以使用fscanf 做到这一点?
int main(void)
{
FILE* fp;
int *vec = malloc(sizeof(int)*6);
int *vec_2 = malloc(sizeof(int)*6);
int row, i;
fp = fopen("vector.txt","r");
for(i = 0; i < row; i++) //I don't know how to read until newline
fscanf(fp, "%d", &vec[k]); //here store the first row in the array
for(i = 0; i < row; i++)
fscanf(fp, "%d", &vec_2[i]); //start reading here from the second row
free(vec);
free(vec_2);
return 0;
}
【问题讨论】:
-
是的,这是可能的。此外,如果行数是固定的并且已知,您可以执行
fscanf(file, "%d %d %d %d", &a, &b, &c, &d);。稍等片刻,您就可以开始了。 -
但我的意图是将数字存储在数组中
-
您想要为每一列创建一个数组,还是为整个文件创建一个数组?
-
我想将第一行存储在一个数组中,第二行存储在另一个数组中
-
请贴出你试过的代码,有很多信息你没有告诉。