我是 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
}
关于c - 在 C 编程中,如何一次从数据文件中读取一行并在移动到下一行之前在其中执行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696632/