0

我只是在尝试使用 bash,所以我用 C 语言编写了一个简单的程序来计算文件中的字符数。

这是我的 C 程序:

#include <stdio.h>

int main()
{
  int i, nc;
  nc = 0;
  i = getchar();
  while (i!=EOF){
    nc = nc + 1;
    i = getchar();
  }
  printf("%d\n",nc);

  return 0;
}

这是我用来编译和执行的 bash 命令:

gcc sign.c < bright_side_of_life > output

我的输出文件是完全空的。我哪里错了?

4

2 回答 2

6

您必须先编译,然后运行:

gcc -o sign sign.c
./sign < bright_side_of_life > output

此外,从技术上讲,这不是将程序的输出通过管道传输到文件中。它只是重定向它。如果你真的想要一个管道,你可能会进行一些“猫虐待”(意思是使用“cat”命令):

./sign < bright_side_of_life | cat > output

但是,I/O 重定向更正常并且(尽管在这种情况下实际上并不重要)更有效。

于 2010-10-12T02:17:12.473 回答
3
gcc sign.c -o output
./output < bright_side_of_life > size.txt

我希望你真的在练习你的 C 语言。否则,只需使用该wc工具

于 2010-10-12T02:16:58.600 回答