【问题标题】:Simple Redirection in CC中的简单重定向
【发布时间】:2013-10-17 13:45:01
【问题描述】:

我是一个初学者,刚刚在 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 &lt; input.txt &gt; 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 中,但这并没有帮助......

任何建议都会很重要。

【问题讨论】:

    标签: c osx-mountain-lion io-redirection


    【解决方案1】:

    我认为你应该做什么:

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

    bash-4.1$ cat input.txt | yourbinary > 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-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多