69,369
社区成员
发帖
与我相关
我的任务
分享
for(i=1;i<MAX_OBJECTS;i++)
{
sprintf(line,"%d,%f,%f,%s\n",objects[i].id,objects[i].x_coord,objects[i].y_coord,objects[i].name);
}
fputs(line,fout);
首先你这里只有两组数据,第二组开始的,因为i=1;而不是三组数据、
然后sprintf执行后前一组数据会被后一组覆盖掉。
你这里这样改
for(i=1;i<MAX_OBJECTS;i++)
{
sprintf(line,"%d,%f,%f,%s\n",objects[i].id,objects[i].x_coord,objects[i].y_coord,objects[i].name);
fputs(line,fout);
}
这样就可以了。
unsigned int flag = 0;
for(i=1;i<MAX_OBJECTS;i++)
{
// 这里你得确保line的内存空间是足够的!
sprintf(line + flag,"%d,%f,%f,%s\n",objects[i].id,objects[i].x_coord,objects[i].y_coord,objects[i].name);
flag += sizeof(MY_TYPE_T);
}