私はASCIIテキストファイルを読んでいます。これは、各フィールドのサイズ(バイト単位)によって定義されます。例えば。各行は、一部の文字列の場合は10バイト、浮動小数点値の場合は8バイト、整数の場合は5バイトなどで構成されます。C++はEOLのサイズ(バイト単位)を取得します
私の問題は、OSに応じて可変サイズの改行文字を読んでいることです(通常は2バイトのウィンドウと1バイトのLinuxと思われます)。
C++でEOL文字のサイズを取得するにはどうすればよいですか?
たとえば、Pythonで私が行うことができます。
len(os.linesep)
ファイルをテキストモードで開く場合、改行は、ネイティブの行末が何であれ、常に「\ n」でなければなりません。ネイティブEOL文字列のサイズを本当に知る必要がありますか? – Badministrator
ファイルが読み込まれたコードと同じOSで保存されていることが保証されていますか?はいの場合、ファイルをバイナリ形式ではなくテキスト形式で開きます。 – dxiv