stdio.hってなんのことっていう気持ちだったころの話

プログラミング

みなさま、遅ればせながら新年あけましておめでとうございます。
ただでさえ更新頻度の少ない当ブログ・・・新年一回目はプログラミングに関してです。
とはいえ私もすさまじく詳しいというわけではなく、ChatGPTによる出力を主としてその他のリファレンスを参照してのお話となります。詳しいリファレンスなどを読むときの抵抗を少しでも軽減できればいいなと思います。

では本題へ・・・。

stdio.hとは何ぞや?

最初に抱くであろう疑問

 プログラミング言語を触る中で比較的ライトな層には最近Pythonが主流であるとは感じていますが、それでも少し深堀してもう少し低レベルな言語1を学ぶ時の主流としてはやはりC言語系統(C++やC#を含む)になってくるんじゃないかなと思います。
そんな中でプログラミング初心者が最初に触れるであろうHelloWorldの文字列出力がありますよね。その中で一番上に<stdio.h>が見えていると思います。形式的にそうなんだろう2と、ひとまず書かれたこのヘッダーファイルについて何も知らないままを今回で卒業しましょう!

stdio.hについて(本編)

 <stdio.h> は、C言語で標準入出力を扱うためのヘッダーファイルです。名前の由来としては”standard input output”の略です。読んで字のごとくというわけですね。(自分はいろいろ理解するまで字面が似ていたVisualStudioの何かの関連なのかと思っていました・・・。)
このヘッダーファイルには、ファイルやコンソールを使ったデータの入出力を行うための関数が定義されています。

主な特徴と役割

主な役割としては以下。

  • 標準入出力機能を提供する。
  • C言語の基本機能であり、ほぼすべてのCプログラムで使用されます。
  • Standard Input(標準入力): 通常はキーボードからの入力を指します(例: scanf でユーザーからの入力を受け取る)。
  • Standard Output(標準出力): 通常はコンソールへの出力を指します(例: printf で文字や数値を表示する)。
  • Standard Error(標準エラー出力): エラー情報を表示する出力先。通常コンソールにエラーメッセージを出力します(例: perror)。

printf()=画面への文字列出力の関数も当然ながらこの中に含まれているので、これを最初にincludeする必要があったんですね・・・!

主な関数

以下に、<stdio.h> に含まれる代表的な関数について概要だけ示しておきます。

コンソール入出力
  1. printf
    • 画面に文字列や数値を表示します。
    • 使用例:
      printf("Hello, World!\n");
  2. scanf
    • ユーザーから入力を受け取ります。
    • 使用例:
      int x;
      scanf("%d", &x);
ファイル操作
  1. fopen / fclose
    • ファイルを開いたり閉じたりします。
    • 使用例:
      FILE *fp = fopen("example.txt", "r");
      fclose(fp);
  2. fread / fwrite
    • ファイルからのデータ読み書きを行います。
  3. fprintf / fscanf
    • ファイルに対して書き込みや読み取りを行います。
  4. fseek / ftell
    • ファイル内の位置を操作します。
その他のユーティリティ
  1. gets / puts
    • 文字列の入力や出力を行います。(getsは非推奨)
  2. perror
    • エラーをコンソールに表示します。

重要な構造体

  • FILE
    • ファイルを操作する際に使用する構造体で、fopen などの関数によって管理されます。

終わりに

 本当に何も知らずに使う状態から脱出してほしい、難しいリファレンスを読むことへの足掛かりになってほしい、そんな思いがあり今回の記事を書きました。今後もプログラミングをしている中で自分が”引っかかったこと”、素朴な疑問を記事にして、今回のような備忘録という名の肥やしも当ブログで増やしていきたいと思います。

  1. 今回のことで言えば、Pythonより低レベルの階層(ポインタ操作等)にアクセスできる言語という意味 ↩︎
  2. 実際、この部分の中身を始めたてで十全に理解するのは難しいので知らないことを減らして知識を増やしてゆくことが大事。 ↩︎
タイトルとURLをコピーしました