1. ホーム
  2. c

[解決済み] C言語でファイルの内容を文字列に読み込むには?

2022-08-12 07:37:42

質問

C 言語でファイルを開き、その内容を文字列 (char*, char[], 何でも) に読み込む最も簡単な方法 (最もエラーが起こりにくい方法、最も少ないコード行数、どのように解釈してもよい) は何ですか?

どのように解決するのですか?

私は、バッファ全体を生のメモリ チャンクとしてメモリにロードし、自分自身でパージングを行うことが多いです。そうすることで、複数のプラットフォームで標準の lib が行うことを最もよく制御することができます。

また、fseek、ftell、fread のエラーコードをチェックしたいかもしれません。(わかりやすくするために省略しました)。

char * buffer = 0;
long length;
FILE * f = fopen (filename, "rb");

if (f)
{
  fseek (f, 0, SEEK_END);
  length = ftell (f);
  fseek (f, 0, SEEK_SET);
  buffer = malloc (length);
  if (buffer)
  {
    fread (buffer, 1, length, f);
  }
  fclose (f);
}

if (buffer)
{
  // start to process your data / extract strings here...
}