C++セミナー(初級)出力処理

HOME->講習会->プログラミングセミナー->C++セミナー(初級)


プログラミングをして,なにかしらの計算させたあとは結果を表示する必要があります.ここでは,指定した文字列を表示する方法について紹介します.

目次

cstdioによる入出力処理
iostreamによる入出力処理
演習

cstdioによる出力処理

「cstdio」は,すでにC言語を習得された方には馴染みがあるであろう「stdio.h」をC++用に置き換えたライブラリになります.C++はC言語のプログラムに互換性があるので,stdio.hも使用できますが,cstdioを用いるようにしましょう.cstdio使用する際には,includeする必要があります.では,「Hello world」を表示するプログラム(ファイル名:helloworld_stdio.cpp)を以下に示します.

#include <cstdio>
int main()
{
    std::printf("Hello world\n");
}

プログラムを打ち込んだら,以下のようにコマンドを入力して,コンパイルして実行してみましょう.「\n」は,コンピュータによっては「¥n」のように表示れます.

g++ helloworld_stdio.cpp
./a.out

「Hello world」と表示されればOKです.表示されない場合は,ファイル名が間違っていないか確認しましょう.

C++では,int main()の後の「{ }」で囲まれた部分が実行されるようになっっています.「;」で1つの動作(プログラムの区切り)を表すことになります.

「std::printf」が文字を画面に表示するためのものであり,「” “」で囲んだ部分が出力されます.C++では,「” “」で囲まれた部分は文字列として処理されるので覚えておきましょう.しかし,出力を見てみると「\n」については表示されていません.これは,「\n」がエスケープシーケンスと呼ばれるもので,改行を表すためです.「\」がエスケープシーケンス(制御コード)であることを表しており,「n」が改行を表しています.エスケープシーケンスは改行以外にも様々なものがあります.

エスケープシーケンス動作
\aアラート(警告音)
\b1文字戻る
\fページ送り(クリア)
\n改行,復帰
\r行の先頭に戻る
\t水平タブ
\v垂直タブ
\\\を表示
\??を表示
\’‘を表示
\”“を表示
\0null文字
エスケープシーケンス一覧

iostreamによる出力処理

iostreamは,C言語にはないものになります.streamと呼ばれる,「データを最小単位の連続体として考え,上流から下流に向かって流れるものとして,入出力,送受信を最小限の滞留とさせ低遅延処理とさせる」という考えをもとに設計されたライブラリとなります(概念なので,よくわかなくても大丈夫です).iostreamを使用する際にはincludeが必要となります.それでは,iostreamを使用した「Hello world」を表示するプログラム(ファイル名:helloworld_iostream.cpp)を以下に示します.

#include <iostream>
int main()
{
    std::cout << "Hello world" << std::endl;
}

プログラムを打ち込んだら,以下のようにコマンドを入力して,コンパイルして実行してみましょう.

g++ helloworld_iostream.cpp
./a.out

「Hello world」と表示されればOKです.表示されない場合は,ファイル名が間違っていないか確認しましょう.std::coutが画面に表示させるためのものであり,std::printfと同様に「” ”」に囲まれた部分が出力されます.今回は「\n」がなくても改行されているはずですが,これは,「std::endl」 がバッファをフラッシュし,改行処理が行われるためです.特にどちらのほうが良いとかは,場合によりけりですが,std::coutを使用する際は,std::endlを使用するほうが多いです.

演習

1.自分の名前を出力するプログラムを記述しましょう.
2.std::coutを使用して,警告音を鳴らしてみましょう.