gpt4 book ai didi

c - 以新形式读取和写入文件

转载 作者:行者123 更新时间:2023-11-30 19:35:50 25 4
gpt4 key购买 nike

我正在尝试从文件中读取内容,并且必须使用它的新形式,但我不太确定如何使用。我已经发布了下面的代码,说明了我所拥有的功能,但我不确定如何处理此错误以及如何修复它?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

double* read_file(FILE* file, int length);

int main(int argc, char* argv[])
{
double* array = malloc(10 * sizeof(double));
int length = atoi(*(argv + 1));
FILE* file = *(argv + 2);

if (argc < 4 || argc > 4)
{
printf("Insufficient arguments. Check your command line.\n");
return 0;
}

array = read_file(file, length);
printf("%p", array);
return 0;
}

double* read_file (FILE* file, int length)
{
FILE* ptr;
double* array = malloc(length * sizeof(double));

int i = 0;

if ((ptr = fopen(file, "r")) == NULL)
{
return 0;
}
else
{
for (i = 0; i < length; i++)
{
fscanf(ptr, "%lf", (array + i));
}
}

fclose(ptr);

return array;
}

最佳答案

首先,您尝试将字符串分配给指向FILE的指针类型的变量。编译器不会让你这样做。

// not allowed
FILE* file = *(argv + 2);

其次,您将指向 FILE 的指针传递给 fopen(),但 fopen() 期望它的第一个参数是字符串,所以这也不起作用。

// file is FILE*, not allowed
ptr = fopen(file, "r"));

如果修复这两行,代码应该可以编译。

关于c - 以新形式读取和写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com