因此,我正在讀取由逗號分隔的文件中的值,並將其分配給一維雙精度數組。下面是我使用做到這一點的方法:將文本文件輸入分配給雙精度數組
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