Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のprintf()で%を出力する方法|%%の使い方を解説

一般に、printf()関数は、テキストと変数の値を組み合わせて画面に出力するために使用されます。しかし、パーセント記号(%)そのものを文字列として出力したい場合は、「%%」と2つ続けて記述する必要があります。単一の「%」だけを書いても何も出力されず、エラーや警告も表示されないため注意が必要です。

以下は、C言語のprintf()で%を出力する基本的な例です。

例1:%%による基本的な出力

#include<stdio.h>
int main() {
    printf("%");
    printf("%%");
    getchar();
    return 0;
}

出力結果

%

このプログラムでは、最初のprintf("%")は何も出力しませんが、printf("%%")は正しく「%」を1つ出力します。「%%」がエスケープシーケンスとして機能し、1つの「%」に変換されるためです。

さらに、%をテキストメッセージの中に出力するには、ほかにもいくつかの方法があります。次の例で確認してみましょう。

例2:さまざまな出力方法

#include<stdio.h>
#include<string.h>
int main() {
    printf("welcome%\n");
    printf("%%\n");
    printf("%c\n",'%');
    printf("%s\n","%");
    char a[5];
    strcpy(a, "%%");
    printf("This is a's value: %s\n", a);
    return 0;
}

出力結果

welcome%
%
%
%
%
This is a's value: %%

それぞれの出力方法のポイント

  • %%:書式指定子の中で最も標準的な方法です。「%%」と書くと「%」が1つ出力されます。
  • %c:文字定数'%'を引数として渡すことで、「%」を1文字として出力できます。
  • %s:文字列"%"を引数として渡すことで、「%」を文字列として出力できます。
  • strcpy(a, "%%"):配列に「%%」という文字列をコピーして%sで出力すると、そのまま「%%」と表示されます。

なお、文字列の末尾などに単独の「%」を置く行為は、C言語の規格上は未定義動作にあたります。コンパイラによっては黙って無視されることもあれば、意図しない挙動を引き起こす可能性もあるため、printf()で%を出力する際は必ず「%%」を使うようにしましょう。

  1. awk入門ガイド:Linuxコマンドラインでテキスト処理をマスターしよう

    awk、sed、grepは、LinuxやUNIXのコマンドラインで最も強力なテキスト処理ツールの3つです。本記事では、awkの基本的な使い方から実用的なワンライナー(1行コマンド)まで、初心者にもわかりやすく解説します。 awkとは何か AWKは、ファイルやデータストリーム内のテキストベースのデータを処理するために設計されたプログラミング言語です。1970年代にベル研究所で開発されました。歴史は古いものの、その性能は現在でも非常に強力かつ効率的で、テキスト処理において今なお第一線で活躍しています。 準備:練習用ファイルを作成する まずはawkの基本から始めましょう。この演習ではダミーファイ

  2. MacBookで印刷する方法|USB・Wi-Fi接続の手順と印刷設定をわかりやすく解説

    MacBookでの印刷はとても簡単です。プリンターをUSBまたはWi-Fiで接続し、ほとんどのアプリで「command + P」を押すだけで印刷できます。 筆者は2019年製MacBook Proのユーザーであり、Macの専門家として、Wi-Fi経由でもUSB接続でも日常的に印刷を行っています。このガイドでは、その具体的な手順をわかりやすくご紹介します。それでは始めましょう。 MacBookで印刷する基本手順 MacBookからの印刷はシンプルで、それほど時間もかかりません。まずは、プリンターをMacBookに接続してセットアップする必要があります(おすすめのMac対応プリンターについて