我正在写一个函数来读取一个文本文件并返回一个双精度数组。该函数接受文件名的输入,并读取其中的值,以返回与数组相同的值。
但是,函数调用者导致错误error: assignment to expression with array type
。
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
#define MAX_LINES 300
#define MAX_LEN 100
double new_double[300] ;
double fileopener(char *fileinput)
{
char data[MAX_LINES][MAX_LEN] ;
FILE *file ;
file = fopen(fileinput, "r") ;
if ( file == NULL )
{
printf("Error opening file yo\n") ;
}
int line = 0 ;
while ( !feof(file) && !ferror(file) )
if (fgets(data[line], MAX_LEN, file) != NULL )
{
new_double[line] = strtod(data[line], NULL) ;
printf("The double value read is: %f\n", new_double[line]) ;
line++ ;
}
fclose(file) ;
printf("Done\n\n") ;
return new_double;
}
int main(){
double t[300] ;
char *filename = "AbsTime_v.txt" ;
t = fileopener(filename) ;
return 0;
}
请你指出我漏掉了什么。
1条答案
按热度按时间qlvxas9a1#
double
返回类型的函数返回double*
。t = fileopener(filename) ;
在C中不可能对数组类型使用赋值。语言就是这样。同样,t
应该作为参数传递,以填充函数。