我是C编程的初学者,希望能对您有所帮助,以帮助您理解问题。

好吧,我有一个数据文件(input.dat),其数据如下:(第一行)0 2 3 4 5; (第二行)1 2 3 5 4(第三行,依此类推...)。我需要一次读取一行数据,直到文件结束并打印出来。到目前为止,这是我所做的:

int main(void)
{
float coeffs[5];
FILE *input;  /* File pointer to the input file */
fopen_s(&input, "input.dat", "r"); /* Location of the input file */
int count = 0;
/* Loops to read data set*/
while (fscanf_s(input, "%f %f %f %f %f ", &coeffs[0], &coeffs[1], &coeffs[2], &coeffs[3], &coeffs[4]) != EOF)
{
    printf("a=%.4f; b=%.4f; c=%.4f; d=%.4f; e=%.4f\n", coeffs[0], coeffs[1], coeffs[2], coeffs[3], coeffs[4]);
    count++;
}
return 0;
}


这一次显示了数据文件中的所有行。但这不是我想要的。我需要一次阅读一行,并在移至下一行之前先对该行进行一些计算和条件。那我该怎么办呢?

下一个问题是,对于第一行,我需要实现从-10到+10的循环(增量为2)(总共获得11个结果)。例如,程序将读取第一行,并将其显示在屏幕上,然后对于第一个值-10,程序将计算并再次显示某些内容。然后它将对-8执行相同的操作,然后对-6执行此类操作,依此类推,直到+10。显示11个结果之后,程序将(然后仅)移至第二行,依此类推。因此,对于数据文件中的每一行,该程序将有11个结果。如何使用增量为2的循环函数来获得这11个结果?

如果有人可以向我提供我要编写的代码结构的简单布局,我将不胜感激。注意:格式与其他编译器有些不同,因为我必须使用Microsoft Visual Studio来执行此操作。

最佳答案

将您的计算添加到while循环中。无论如何,您一次只能读取一行。

如果要以2为增量从-10循环到10,请使用for循环。

for(count = -10; count <= 10; count = count + 2)
    {
        // Calculations
    }

07-24 09:44
查看更多