マシンやソフトによって行の扱い方が違います。一応知っておいた方がトラブルが減るでしょう。
普通のテキストをコンピュータで表示すると、次の様に見えますね。
これは1行目で
これは2行目で
これは3行目です
でも、実際にテキストファイルを調べてみると、ほとんどのコンピュータでは次の様な内容になってます。
これは1行目で<行の区切り>これは2行目で<行の区切り>これは3行目です<行の区切り>
つまり、行の区切り(line break)を表すための制御文字が入ってるだけであり、データとしてはダラダラと繋がってるだけなのです。
行の区切りを表す制御文字のことをニューライン(newline)といいますが、これは現在のASCIIコードにはありません。ほとんどのコンピュータでは、CR(復帰)とLF(改行) を使っています。
ソフトによって区切りの制御文字が違う コード 2進数 16数進 DOS系 (DOS, OS/2, Windows等) CR LF00001101 000010100D 0AMac系 (漢字Talk, MacOS9迄, Classic環境) CR000011010DUNIX系 (BSD, Linux, MacOSX, SystemV等) LF000010100A
マシンやソフトによって使うコードが違うのです。
なお、メールでの行の扱いは[4.1]で説明します。
行の扱いを間違えると、行頭や行末に変な文字が見えたり、1行に見えたりします。[11.2]参照
ANSI規格やJIS規格等では、「動作位置を先頭に戻すだけで、行は変わらない」のがCRで、「動作位置を一行下げるだけで、行頭には戻らない」のがLFということになってます。
でも、実際の使われ方がそうではない場合が多く、混乱しますね。
JIS規格だと「LF」の事を「改行」と言います。
ところが、「行の区切り」のことも「改行」と呼ぶ事があるので、混乱します。
英語だと、「LF」は「line feed」で、「行の区切り」は「line break」なので、ちゃんと区別されてます。
本来、行の区切りを表す制御文字は「newline」といい、古いASCIIではLFと同じに扱って良かったのですが、現在のASCIIにはありません。