私はCプログラミングを習得しようとしています。余分なキャリッジリターンはどこから来ていますか?
私は、この小さなプログラム書かれています:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
// variable declarations
long nc;
char ch;
// initialize variables
nc = 0;
while ((ch = getchar()) != EOF) {
printf("%d\t%c\n", ch, ch);
++nc;
}
printf("Number of characters typed: %ld\n", nc);
return EXIT_SUCCESS;
}
をし、私はそうのような小さなテキストファイル作成:
./countchar < text.txt
:
echo "abcdef" > text.txt
を私はそうのように、このプログラムを実行すると次の出力が得られます。
97 a
98 b
99 c
100 d
101 e
102 f
10
Number of characters typed: 7
私の質問は、リダイレクトを使用してこのプログラムを実行したときに、このケースで10が表すもの(改行?)と7番目の文字として表示される理由です。
テキストファイルをエディタで開きましたか? 'echo'のマンページを読んだことがありますか?理由を見つけようと努力しましたか? ASCII '10'は改行ではなく行送りです。 – Olaf
Linuxの場合は、 'echo -n" abcdef "> text.txt'を試してみてください。 – indiv
いいえエディターで開きませんでした。私は正確に、私が上にタイプしたものだけをしました。私はエコーのマンページを読まなかった。私は完全な完全な初心者で、本から作業している。しかし、私はそれを今読んで、チップオラフに感謝し、それを理解しました。 – phedor