C でプログラムを読んでいて、新しい行を見つけたいのですが、方法がわかりません。
私はこのようなテキストファイルを読んでいます:
while(!feof(fp)){
fgets(buffer, 4, fp);
}
私のテキストファイルは次のようなものです:
C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG
fgets によって読み取られている単語が新しい行にあるかどうかをどのように知ることができますか??
本当に一度に 3 文字を取得したいですか (これはsize
4文字で得られるものです。文字数fgets
よりも 1 つ少ないsize
文字を読み取るためです)。
C01
RD
A A
LB
NAC
ED
F¶
C02
MC
A E
DF
SLF
AD
G¶
(¶
改行を示す)? 私はそうは思いませんが、一度に 4 文字が必要であり、単語の区切り記号をトリムします。
char buffer[5];
char newline = 1;
while (fgets(buffer, sizeof buffer, fp))
{
if (newline) puts("new line:");
newline = buffer[3] == '\n';
buffer[3] = '\0';
puts(buffer);
}
feof()
I/O を行う前に呼び出すことは想定されていません。
各改行の場所に興味がある場合は、代わりにfgetc()
. 次に、文字ストリームを単語に解析します。これにより、改行が発生したときに気付くのが簡単になります。