gpt4 book ai didi

c - 将 < 重定向与 csv 文件一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:13 24 4
gpt4 key购买 nike

对于工程类,我正在尝试用 C 编写一些代码,根据每行输入文本文件的三个输入值计算阻力,这些输入值将使用 < 重定向在终端输入。该程序应该打印每行输入的 3 个值,然后是第 4 列的计算结果……目前我的代码只打印和计算最后一行。我知道这是一个简单的问题,只是想知道我做错了什么:

int
main(int argc, char *argv[])
{

double cd, mass, velocity_terminal, area;
printf("Stage 1\n");
printf("=======\n");

printf("mass\tvelocity\tarea\tdrag coefficient\n");


while(scanf("%lf,%lf,%lf", &mass, &velocity_terminal, &area) == 3);
{

printf("%.1lf\t %.1lf\t %.3lf\t", mass, velocity_terminal, area);

cd = (2 * mass * GRAVITY)/(DENSITY * area * velocity_terminal * velocity_terminal);
printf("%.3lf\n", cd);
}

例如,如果我输入:

43,56,22
66,88,143
12,54,65
23,67,87

作为文本文件,它只会做最后一行吗?

感谢任何帮助!

最佳答案

您的 while 循环不正确。

while(scanf("%lf,%lf,%lf", &mass, &velocity_terminal, &area) == 3);

删除分号。它在没有主体的情况下结束循环,然后独立于循环评估您的下一个 block 。

while(scanf("%lf,%lf,%lf", &mass, &velocity_terminal, &area) == 3)
{
printf("%.1lf\t %.1lf\t %.3lf\t", mass, velocity_terminal, area);
cd = (2 * mass * GRAVITY)/(DENSITY * area * velocity_terminal * velocity_terminal);
printf("%.3lf\n", cd);
}

关于c - 将 < 重定向与 csv 文件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25598741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com