Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C fscanf跳转值_C_Arrays_File_Scanf - Fatal编程技术网

C fscanf跳转值

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

我正试图制作一个程序来读取这些值​​在一个文件中,并在屏幕上打印它们,现在部分地打印文件,我的程序最终跳过了一些值​​. 另一个问题是,在这种情况下,如何为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));