【发布时间】:2011-05-30 18:33:24
【问题描述】:
我正在尝试将我的结构保存在 file.txt 中。我找到了以下保存代码,但问题是我希望每个q[i] 都保存在文件的不同行中!我无法修改代码。
void WriteFile(struct car* q )
{
printf("Attempting to write...");
FILE* fp = 0;
char* buffer = 0;
int i=0;
/* allocate */
buffer = malloc ( 150 );
bzero( buffer, 150 );
/* copy the data to a string */
snprintf( buffer, 150, "%s\t%s\t%d\t%s\t%.2f\t%.2f\t%d/%d/%d\t%d/%d/%d\t%d/%d/%d\n",q->name,q->numberplate,q->km,q->phonenumber,q->overall_cost,q->paid_cost,q->dateIn->day,q->dateIn->month,q->dateIn->year,q->dateServiced->day,q->dateServiced->month,q->dateServiced->year,q->dateOut->day,q->dateOut->month,q->dateOut->year);
printf("\n");
fp = fopen("arxeio3.txt", "a" );
fputs( buffer, fp );
fputs("\n",fp);
free( buffer );
fclose( fp );
}
【问题讨论】:
-
为什么不能修改代码?
-
查看fopen()的返回:
if (!fp) printf("error opening file!\n"); -
即使我将 \n 放入 "snprintf(...)" 或者即使我输入 fputs("\n",fp) 我的数据也将保存在同一行中!!!
-
你确定要编译吗?
-
@karlphilip...是的...我的错误..我没有检查 fopen() 的返回,但我的数据仍然保存在一行中@Nathan Fellman 是的..我是正在编译...并创建文件 arxeio3.txt...我的数据在...但都在一行中!!!!!