我想使用fwrite将一个默认结构N次写入文件.
typedef struct foo_s {
uint32 A;
uint32 B;
char desc[100];
}foo_t;
void init_file(FILE *fp, int N)
{
foo_t foo_struct = {0};
foo_struct.A = -1;
foo_struct.B = 1;
fwrite(&foo_struct, sizeof(foo_struct), N, fp); }
Run Code Online (Sandbox Code Playgroud)
上面的代码没有将foo_struct写入文件流fp N次.
相反,它将从&foo_struct开始的N*sizeof(foo_struct)字节写入fp.
任何人都可以告诉如何用一个fwrite实现相同的目标吗?
Fer*_*cio 11
你不能用一个fwrite().你必须使用一个循环:
int i;
for (i = 0; i < N; ++i)
fwrite(&foo_struct, sizeof(foo_struct), 1, fp);
Run Code Online (Sandbox Code Playgroud)
fwrite()的第三个参数是要写入的对象数,而不是写入单个对象的次数.
| 归档时间: |
|
| 查看次数: |
3313 次 |
| 最近记录: |