我正在尝试从文件中读取数字。该文件具有以下格式:
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;
}
int main(void){
FILE* fp;
int cols = 6;
int *vec_1 = malloc(sizeof(int)*cols);
int *vec_2 = malloc(sizeof(int)*cols);
int i, i1, i2;
char ch;
fp = fopen("vector.txt","r");
for(i1 = 0; i1 < cols; ){
fscanf(fp, "%d%c", &vec_1[i1++], &ch);//Format is limited. "num[ \t\n]"
if(ch == '\n')
break;
}
i2 = 0;
while(1==fscanf(fp, "%d", &vec_2[i2])){
if(++i2 == cols)
break;
}
fclose(fp);
printf("first : ");
for(i=0; i<i1; ++i)
printf("%d ", vec_1[i]);
printf("\n");
printf("second : ");
for(i=0; i<i2; ++i)
printf("%d ", vec_2[i]);
printf("\n");
free(vec_1);
free(vec_2);
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)