我是初学者,只是在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;
}
我已经尝试在Xcode和终端中使用:command < input.txt > output.txt
。在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
内,但这没有帮助......
任何建议都是巨大的。
答案 0 :(得分:1)
我认为你应该做的事情:
如果是在Linux操作系统上,您的I / O应该通过使用类似
的方式重定向bash-4.1 $ cat input.txt | yourbinary&gt; 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&gt; output.txt的
我希望它很有用