2010-10-12 46 views
0

我只是在bash中尝试我的手,所以我在C中编写了一个简单的程序来计算文件中的字符数。将C程序的输出输出到文件(bash)

这是我的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 

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

回答

6

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

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

而且,在技术上这不是管道程序到文件的输出;它只是重定向它。如果你真的想要一个管道参与,你可能去为一些“猫科动物虐待”(意思是,使用“猫”命令):

./sign < bright_side_of_life | cat > output 

然而,I/O重定向是比较正常的和(尽管在这方面它确实无关紧要),效率更高。

+0

嘿,我很高兴我并不是一个人相信它稍微有效率(但并不重要)。 – 2010-10-12 02:31:28

+0

谢谢。有效。一旦我运行C程序,我最终意味着将它传递给awk脚本 – xbonez 2010-10-12 03:22:08

3
gcc sign.c -o output 
./output <bright_side_of_life> size.txt 

我希望你实际上在练习你的C语言。否则,只需要使用wc工具

+0

大声笑...是的。只是练习C.我很习惯在C#中编程,C正在杀死我。 – xbonez 2010-10-12 03:21:40