fgetsとかいう古典的なやつ

備忘録メモと化してる。

読ませるための文章になってないから読みにくくてもなんかごめんとしか言えない。

日記をかかない🤔

 

 

それはさておきタイトルの話。

 

 

 

fgetsという標準関数はfopenでとってきたfpの内容を一行バチコーンともってきてくれる。

複数行あるならwhileでeofるまでfgets連打すれば全行読める。

んでfgetsした文字列をどーのこーのして処理に使う。

 

そんななかで今日の私がふと思った疑問

「fgetsが一行とるの一行ってどの改行コードをもって一行と認識してんのさ」

 

 

散々使ってるくせに認識ガバガバなのが露呈した瞬間である。

Cやらに慣れた人は言ってる意味がわかりそうだけどわからない人向けに。

文章の末尾にある改行コードは「💴r」「💴n」の二種類あるのだ。違いとかは別途調べておくれ。

(💴マークが絵文字なのはベタうちするとエディタが文字コード認識するせいなんだ許せ)

 

話を戻して、私の疑問はつまるところ「fgetsは のどっちを認識してここまでが一行と判断してるのか」ということなんですよ。

で、ググったところ「💴n」のみを認識していて、仮に

「ほにゃちょめ💴r ぬるぽ💴r ガッ💴n ふんがー💴n 」っていうのがfopenしたファイルにかいてあったら、fgets的には「ほにゃちょめ ぬるぽ ガッ 」と「ふんがー 」をそれぞれ一行として認識するらしい。

 

まあググっただけじゃ心配なので暇なときおもいだせたら実験してみよー。