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

标签 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的输出是数字是1726119990。

最佳答案

看起来你正在做一些类似于启动程序并获得一个空行(这是从标准输入读取的scanf()),然后你写./main.c < number.txt这意味着您没有将包含该值的文件通过管道传输到您的程序中,而是 scanf 正在读取字符串,并且由于它找不到数字,因此返回 0。

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

关于c - 如何在 Mac 上使用 C I/O 重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128545/

相关文章:

swift - Swift 中 Firebase 的帖子中的数据结构问题

xcode - 如何将xcodebuild与-only-testing和-skip-testing标志一起使用?

c - While 循环未正确完成

c - 结构 X 中的结构 X?

c - LPC810 - 为什么机器代码不能从闪存中的 uint8_t 数组执行?

c - 替换纯 C 中的链接器部分

ios - 启用 guard malloc 时出现奇怪的错误

xcode - 如何在 Swift 框架中使用 Objective C 类?

iphone - 以图形方式布局 ScrollView (页面 View )

c - 为什么我的数组索引比指针快