因此,我正在读取由逗号分隔的文件中的值,并将其分配给一维双精度数组。下面是我使用做到这一点的方法:将文本文件输入分配给双精度数组
double* readFile(char *fileName)
{
FILE *fp = fopen(fileName, "r");
char *token;
int i = 0;
int j = 0;
double *retval = (double *)malloc(5000 * sizeof(double));
if(fp != NULL)
{
char line[10];
while(fgets(line, sizeof line, fp) != NULL)
{
//printf("Parsed line: %s\n", line);
token = strtok(line, ",");
while(token != NULL)
{
printf("token: %s\n", token);
*retval = atof(token);
printf("value: %d\n",*retval);
retval++;
token=strtok(NULL,",");
}
}
fclose(fp);
} else {
perror(fileName);
}
for(j = 0; j < i; j++)
{
retval--;
}
return retval;
}
我得到的问题是,在我指定ATOF()标记化值,这是正确的,即保存在价值指针是绝对不正确的。例如,我有一个文本文件,它只是全部为零,并且在数组中保存的是在每个位置上的-1587604999这样的疯狂值。
任何人都看到问题了吗?
就是这样!好样的! – 2014-12-04 01:44:05