Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 将数据保存到文本文件时出现问题_C_Arrays_Loops_Pointers - Fatal编程技术网

C 将数据保存到文本文件时出现问题

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

数据保存不正确,for循环的第一个循环为我们提供了随机字符,但是下面的循环为我们提供了正确的数字

任何帮助都将不胜感激

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");