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 に答える