1

我是一个初学者,刚刚在 OSX 的 Xcode 5 中学习 C 的基础知识。在我正在做的课程中,我收到了一项作业,将信息(与程序相关的值)从输入文件(input.txt)重定向到一个简单的程序中,然后在第二个文件(output.txt)中显示结果。

这是该程序的副本:

#include <stdio.h>

#define NIS_PER_LITER 5.37

int main()
{

    double speed, hrs, km_per_liter;
    double liters, cost;

    printf("Enter driving time in hrs: ");
    scanf("%lf", &hrs);
    printf("Enter driving speed in kph: ");
    scanf("%lf", &speed);
    printf("Enter km per liter: ");
    scanf("%lf", &km_per_liter);

    liters = hrs * speed / km_per_liter;
    cost = liters * NIS_PER_LITER;

    printf("Your driving cost is %lf NIS\n", cost);

    return 0;
}

我已经尝试过command < input.txt > output.txt在 Xcode 和终端中使用:在 Xcode 内部,这会导致输出行显示:

Enter driving time in hrs: command <input.txt
Enter driving speed in kph: 
Enter km per liter:
Your driving cost is nan NIS
Program ended with exit code: 0

在终端中,它什么也不做。我也试过将输入/输出文件放在里面,DerivedData但这没有帮助......

任何建议都会很重要。

4

1 回答 1

1

我认为你应该做的:

如果它在 Linux 操作系统上,您的 I/O 应该使用类似的东西重定向

bash-4.1$ 猫输入.txt | 你的二进制文件 > output.txt

也许事情可能不会如你所愿。首先 input.txt 的内容是什么?如果听起来像这样:

2.3
100.00

最好阅读程序中的文件。如果你想要不同的东西,你可以使用 linecommand 参数,它们看起来像这样:

bash-4.1$ ./command --speed=100.00 --kmperliter=12

您还可以使用 printf 从应用程序内部打印到标准输出。如果这样做,命令行调用将如下所示:

bash-4.1$ ./command --speed=100.00 --kmperliter=12 > output.txt

我希望它有用

于 2013-10-17T15:00:10.583 回答