嗨,我的课程作业有问题,"return value ignored 'fscanf'":



我的课程作业有问题,我需要找到唯一的问题是扫描输入文件,所以结果变得错误。我该如何修复它,为什么?返回值忽略'fscanf'">

double E;
for (int i = 0; i < 3; i++)
{
fscanf(inp_file, "%lf%lf%lf%lf%lf%lf%lf%lf", &inp[i].T, &inp[i].delt, &inp[i].Tk0, &inp[i].m0, &inp[i].n, &inp[i].R0, &inp[i].h, &inp[i].delF);

检查返回值在C语言中是至关重要的,这就是这个警告的意义。

scanf和它的类似函数返回成功赋值的数量。如果这与你传递给赋值的变量数不相等,那就意味着有问题。

所以你应该这样做:

int n = fscanf(inp_file, "%lf%lf%lf%lf%lf%lf%lf%lf", &inp[i].T, &inp[i].delt, &inp[i].Tk0, &inp[i].m0, &inp[i].n, &inp[i].R0, &inp[i].h, &inp[i].delF);
if(n != 8) {
// Handle error
}

最新更新