putchar関数を使ったサンプルコード

2024-04-02

C言語におけるputchar関数:ファイル入出力の基礎

putchar関数の概要

  • ヘッダファイル:<stdio.h>
  • プロトタイプ:int putchar(int ch);
  • 引数:
  • 戻り値:
    • 成功した場合:出力された文字(char型)を返します。
    • 失敗した場合:EOF(-1)を返します。

putchar関数は、以下の動作を行います。

  1. 引数chで指定された文字を内部的にchar型に変換します。
  2. 変換された文字を標準出力ストリーム(stdout)へ送信します。

putchar関数の使用例

#include <stdio.h>

int main() {
  putchar('A'); // 文字 'A' を出力
  putchar('\n'); // 改行を出力
  putchar('B'); // 文字 'B' を出力
  return 0;
}

この例では、putchar関数を使用してABという文字と改行を出力します。実行結果は次のようになります。

A
B

putchar関数は、ファイル入出力の基本的な機能を理解する上で役立ちます。ファイルへの文字出力は、標準出力ストリームへの出力と同様に行えます。

#include <stdio.h>

int main() {
  FILE *fp;
  fp = fopen("test.txt", "w"); // ファイルを開く
  if (fp == NULL) {
    // ファイルオープン失敗時の処理
    return 1;
  }
  putchar('C', fp); // ファイルへ文字 'C' を出力
  fclose(fp); // ファイルを閉じる
  return 0;
}

この例では、test.txtというファイルを開き、putchar関数を使用して文字Cを出力します。

putchar関数の注意点

  • putchar関数は、標準出力ストリームへの出力のみをサポートします。
  • ファイルへの出力には、fprintf関数などの他の関数を使用する必要があります。
  • putchar関数は、バッファリングを使用するため、必ずしもすぐに文字が出力されるとは限りません。
  • 出力エラーが発生した場合、EOF(-1)が返されます。

まとめ

putchar関数は、C言語における標準出力ストリームへ文字を出力する基本的な関数です。ファイル入出力の基本を理解する上で役立ちますが、ファイルへの出力にはfprintf関数などの他の関数も必要となります。



putchar関数を使ったサンプルコード

文字と改行を出力する

#include <stdio.h>

int main() {
  putchar('H'); // 文字 'H' を出力
  putchar('\n'); // 改行を出力
  putchar('e'); // 文字 'e' を出力
  putchar('l'); // 文字 'l' を出力
  putchar('l'); // 文字 'l' を出力
  putchar('o'); // 文字 'o' を出力
  putchar('\n'); // 改行を出力
  return 0;
}
Hello

繰り返し処理で文字列を出力する

#include <stdio.h>

int main() {
  int i;
  char str[] = "Hello, world!";

  for (i = 0; str[i] != '\0'; i++) {
    putchar(str[i]);
  }
  putchar('\n');

  return 0;
}

実行結果:

Hello, world!

ファイルへ文字を出力する

#include <stdio.h>

int main() {
  FILE *fp;

  fp = fopen("test.txt", "w");
  if (fp == NULL) {
    // ファイルオープン失敗時の処理
    return 1;
  }

  putchar('A', fp); // ファイルへ文字 'A' を出力
  putchar('B', fp); // ファイルへ文字 'B' を出力
  putchar('\n', fp); // ファイルへ改行を出力

  fclose(fp);

  return 0;
}

ファイル内容:

AB

putchar関数と getchar関数を使った簡易エディタ

#include <stdio.h>

int main() {
  int ch;

  while ((ch = getchar()) != EOF) {
    putchar(ch);
  }

  return 0;
}

動作:

  • キーボードから入力された文字を標準出力へ出力し続ける
  • Ctrl+Dを入力すると終了

putchar関数と配列を使った文字列出力

#include <stdio.h>

int main() {
  char str[] = "This is a string.";
  int i;

  for (i = 0; str[i] != '\0'; i++) {
    putchar(str[i]);
  }
  putchar('\n');

  return 0;
}

実行結果:

This is a string.

putchar関数とポインタを使った文字列出力

#include <stdio.h>

int main() {
  char *str = "This is a string.";

  while (*str != '\0') {
    putchar(*str);
    str++;
  }
  putchar('\n');

  return 0;
}

実行結果:

This is a string.

putchar関数は、さまざまな方法で文字列や文字を出力するのに役立ちます。これらのサンプルコードを参考に、putchar関数の使い方を理解し、プログラムに活用してください。



putchar関数以外の文字出力方法

printf関数は、書式指定に基づいてさまざまなデータを出力する関数です。文字列だけでなく、数値や浮動小数点数なども出力できます。

#include <stdio.h>

int main() {
  printf("Hello, world!\n");
  return 0;
}

実行結果:

Hello, world!

puts関数は、改行文字を含めて文字列を出力する関数です。printf関数よりも簡潔に記述できます。

#include <stdio.h>

int main() {
  puts("Hello, world!");
  return 0;
}

実行結果:

Hello, world!

fputs関数は、ファイルストリームへ文字列を出力する関数です。ファイルへの出力に適しています。

#include <stdio.h>

int main() {
  FILE *fp;

  fp = fopen("test.txt", "w");
  if (fp == NULL) {
    // ファイルオープン失敗時の処理
    return 1;
  }

  fputs("Hello, world!", fp);

  fclose(fp);

  return 0;
}

ファイル内容:

Hello, world!

fputc関数は、ファイルストリームへ文字を出力する関数です。fputs関数よりも簡潔に記述できます。

#include <stdio.h>

int main() {
  FILE *fp;

  fp = fopen("test.txt", "w");
  if (fp == NULL) {
    // ファイルオープン失敗時の処理
    return 1;
  }

  fputc('H', fp);
  fputc('e', fp);
  fputc('l', fp);
  fputc('l', fp);
  fputc('o', fp);
  fputc('\n', fp);

  fclose(fp);

  return 0;
}

ファイル内容:

Hello

その他の方法

上記以外にも、sprintf関数やvfprintf関数など、さまざまな方法で文字を出力できます。それぞれの方法の特徴を理解し、状況に応じて使い分けることが重要です。

putchar関数以外にも、C言語で文字を出力するにはいくつかの方法があります。それぞれの特徴を理解し、状況に応じて使い分けることが重要です。