如何在Mac上使用C I / O重定向?

时间:2015-08-20 21:16:57

标签: c xcode

我在C中尝试I / O重定向;我重定向标准输入,以便我可以在控制台上打印包含在txt文件中的数字。

int main() {
    int number;
    scanf("%d", &number);
    printf("The number is %d.", number);
}

在Xcode中,我转到Products文件夹,然后双击可执行文件以启动控制台。我发出这一行:

./main.c < number.txt

控制台打印出一个数字,但不是正确的数字。如果您愿意,请下载此简单项目here。我在这里做错了什么?

更新

  • 我遇到与CSV文件相同的问题;
  • 我检查了scanf()的返回值,它等于0.
  • 文件中包含的数字为4(我最近将其更改为5),但shell的输出为The number is 1726119990.

1 个答案:

答案 0 :(得分:1)

看起来你正在做一些启动你的程序并得到一个空白行(这是从stdin读取scanf())然后你写./main.c < number.txt这意味着你没有管道将值带入程序,而scanf正在读取字符串,因为它没有找到数字,所以它返回0。

您需要做的是创建一个控制台窗口,以便在前面看到$,然后转到exe所在的目录并写入./main < number.txt