C 将数据保存到文本文件时出现问题
数据保存不正确,for循环的第一个循环为我们提供了随机字符,但是下面的循环为我们提供了正确的数字 任何帮助都将不胜感激C 将数据保存到文本文件时出现问题,c,arrays,loops,pointers,C,Arrays,Loops,Pointers,数据保存不正确,for循环的第一个循环为我们提供了随机字符,但是下面的循环为我们提供了正确的数字 任何帮助都将不胜感激 int saveDroneSimResults(delivery_info deliveryinfo, int no_of_deliveries){ int numdel, i; numdel = no_of_deliveries; printf("NUM DEL: %d\n\n", numdel); F
int saveDroneSimResults(delivery_info deliveryinfo, int no_of_deliveries){
int numdel, i;
numdel = no_of_deliveries;
printf("NUM DEL: %d\n\n", numdel);
FILE file = fopen("results.txt", "w");
if(file == NULL){
printf("ERROR! The file failed to open!\n");
exit(-1);
}
for(i=0; i < numdel; i++){
fprintf(file, "%d %d %19s %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf\n", deliveryinfo[i].deliveryID,
deliveryinfo[i].drone_ID, deliveryinfo[i].drone_name, deliveryinfo[i].max_distance , deliveryinfo[i].load_capacity ,
deliveryinfo[i].Delivery_Orig_loc_x , deliveryinfo[i].Delivery_Orig_loc_y , deliveryinfo[i].Delivery_Desti_loc_x ,
deliveryinfo[i].Delivery_Desti_loc_y , deliveryinfo[i].load_capacity, deliveryinfo[i].Delivery_distance);
}
fclose(file);
return 0;
int savedonesimresults(交货信息交货信息,交货数量){
国际货币基金组织;
numdel=无交付数量;
printf(“numdel:%d\n\n”,numdel);
FILE=fopen(“results.txt”,“w”);
if(file==NULL){
printf(“错误!文件无法打开!\n”);
出口(-1);
}
对于(i=0;i
我不确定您是如何没有收到错误消息的,但您丢失了*(FILE*FILE=fopen(…)。如果I=1时它工作正常,那么您可以将for循环更改为:
for(i =1; i< numdel; i++)
纯粹是为了让您和其他人在将来更容易阅读代码。每个fprintf也可以有3个变量,但是任何超过3的变量都很难快速检查
为了进一步排除故障,我建议您查看交货信息的内容,并确保存储的内容符合您的要求
编辑:正如@Majkl指出的,您的文件打开也是错误的。它应该是:
FILE *file = fopen("results.txt", "w");
FILE *file = fopen("results.txt", "w");