console显示"File open fail!,进入readfile函数就会 自动跳转到string.h文件的这个while循环里。 检查了文件路径和文件内容都没有问题 ,什么原因?
double* read_file(double* data)
{
int dig[1000] = { 0 }; // 小数位数
int count,x;
count = 0;
x = 0;
FILE* fp;
fp = fopen("Data_10_2_temp.txt", "r");
if (!fp)
{
printf("File open fail!\n");
//return NULL;
}
char* buffer = (char*)malloc(CH_SIZE * sizeof(char));
if (buffer == NULL)
{
printf("缓存分配失败\n");
fclose(fp);
return NULL;
}
memset(buffer, 0, CH_SIZE * sizeof(char));
while (1)
{
if (fscanf(fp, "%s", buffer) == 1)
{
if (sscanf(buffer, "%lf", &data[count] ) == 1)
{
char* ptr2 = strchr(buffer, 'e');
if (ptr2)
{ // 如果是科学计数法,提取出整数部分,根据符号位计算小数位
ptr2++;
sscanf(ptr2, "%d", &x);
if (*ptr2 == '-')
x += 4;
else
x += 3;
}
else
x = 0;
dig[count] = (int)(strlen(buffer) - 4 - x);
if (dig[count] <= 0)
dig[count] = 1; // 如果是 1 位或 2 位的整数,输出 1 位小数位
count++;
if (count > 979)
break;
}
memset(buffer, 0, CH_SIZE * sizeof(char));
}
else
break;
}
fclose(fp);
free(buffer);
return data;
}
进入readfile函数就会自动 跳转到string.h文件的memset这句while循环里一直跑。
