3

k&r1.5.3で問題が発生しました。明らかに、私は完全な初心者です。以下は、本から正確に、そして私が入力したとおりのコードです。正常にコンパイルされ、実行されます。文字を返しますが、行数を出力することはありません。Ubuntuマシンでsshを使用しています。妻のMacのキーを「\n」と解釈できませんか?

#include <stdio.h>

/*count lines in input*/

main()
{
     int c, n1;

     n1 = 0;
     while ((c = getchar()) != EOF)
          if (c == '\n')
               ++n1;
     printf("%d\n", n1);
}
4

1 に答える 1

5

正しい。Macは\r行末として使用します:http://en.wikipedia.org/wiki/Newline

次のようにコードを更新します。

#include <stdio.h>

/*count lines in input*/

main()
{
     int c, n1;

     n1 = 0;
     while ((c = getchar()) != EOF)
          if (c == '\r')                      /* use \r for Macs */
               ++n1;
     printf("%d\n", n1);
}

でも

同じことをしようとすると、Ctrl-Dを入力しEOF、プログラムをトリガーして行数を出力する必要があります。

于 2013-03-07T15:03:26.397 に答える