C fscanf跳转值
我正试图制作一个程序来读取这些值在一个文件中,并在屏幕上打印它们,现在部分地打印文件,我的程序最终跳过了一些值. 另一个问题是,在这种情况下,如何为v动态分配内存 文件: 代码: 改为C fscanf跳转值,c,arrays,file,scanf,C,Arrays,File,Scanf,我正试图制作一个程序来读取这些值在一个文件中,并在屏幕上打印它们,现在部分地打印文件,我的程序最终跳过了一些值. 另一个问题是,在这种情况下,如何为v动态分配内存 文件: 代码: 改为 while ((fscanf(fp," %f",&v[i])) != EOF){ printf("v[%d] = [%f]\n",i,v[i]); i++; } 您在一次迭代中执行两次文件读取,请在中更改条件,同时从: while ((fscanf(fp," %f",&v
while ((fscanf(fp," %f",&v[i])) != EOF){
printf("v[%d] = [%f]\n",i,v[i]);
i++;
}
您在一次迭代中执行两次文件读取,请在中更改条件,同时从:
while ((fscanf(fp," %f",&v[i])) != EOF);
致:
这将防止值跳过问题。希望这有帮助。边做边做。执行条件和内部两次读取。查看realloc以动态调整vint fclose文件的大小*fp;->fclose-fp;关于realloc,我尝试了v=float*reallocv,i*sizeoffloat;有一段时间了,但没有work@Eraldo可能是i->i+1。或者是已分配内存的完整大小的扩展。v=mallocsize=100*sizeoffloat;。。ifi==SIZEV=reallocv,size+=100*sizeoffloat;
v[0] = [3.00000]
v[1] = [1.00000]
v[2] = [1.00000]
v[3] = [2.00000]
v[4] = [-3.00000]
v[5] = [-1.00000]
v[6] = [5.00000]
v[7] = [-3.00000]
v[8] = [1.00000]
while ((fscanf(fp," %f",&v[i])) != EOF){
printf("v[%d] = [%f]\n",i,v[i]);
i++;
}
while ((fscanf(fp," %f",&v[i])) != EOF);
while(!feof(fp));