天国にいけるC言語入門 シーズン1 パソコン超初心者がゼロから東方風シューティングをつくる編 ver.0.4.15.789 RELIEF
☆%cキャラクター出力変換指定子を使って数値(アスキーコード)をprintf出力表示すると代わりに別の数値、記号などをコマンドプロンプト画面に表示できるぞ!
ユーザーから渡されたデータがコンピュータのメモリに格納されるということを意識しておけばプログラミング言語に対する理解がより深まることになります💖
☆%cキャラクター出力変換指定子を使って数値(アスキーコード)をprintf出力表示すると代わりに別の数値、記号などをコマンドプロンプト画面に表示できるぞ!
ソーラー 「でもこの %c キャラクター(文字)出力変換指定子
おもしろいのはこれからですよ。
このプログラムをご覧ください
なにか 違いがあるのかわかりますか
#include <stdio.h>
int main(void)
{
printf("%c\n",100 );
return 0;
}
さきのエピソードでは
シングルクォーテーション' 'で囲まれ
文字データとして
コンピュータのメモリに格納された'1'を
コマンドプロンプト画面に表示したいときは
%c出力変換指定子を使いました
でしたが
printf関数の第2引数に
上記のプログラムのように
シングルクォーテーション' 'をつかわず
そのまま直接
数値を代入してみたらどうなるでしょうか?
先のエピソードのプログラム
👇
#include <stdio.h>
int main(void)
{
printf("%c\n",'1' );
return 0;
}
プログラムの実行結果
1
においては
プログラムの実行結果は1でした
printf("%c\n",'1' );
を
printf("%c\n",100 );
のように記述した場合
コンパイル結果はど~なるのかな?
楽しみだね
どう思う?😊」
マックス 「文字データを%cのある部分に取り込めるのが
%c出力変換指定子だったじゃ~ん
数値データ100は
シングルクォーテーション' 'で取り囲んでないから
文字じゃないよな
じゃあ取り込めないじゃないか
シングルクォーテーション' 'で取り囲んで文字として
コンピュータのメモリに格納しようとしても
'1' '7'のように
シングルクォーテーションは
1文字しか入力を受けつけないから
printf("%c\n",'100');
としてもコンパイルエラーが出るしな
どうしようもないか・・・
シングルクォーテーションでかこめない
数値データ100をprintf関数の第2引数にすると
コンパイルエラーになるんじゃないか?」
ソーラー 「そうおもうでしょう?😊わたしもそうおもいます。
では 実際にプログラムを実行してみましょう
このプログラムを
👇
#include <stdio.h>
int main(void)
{
printf("%c\n",100 );
return 0;
}
ソーラー 「コンパイルっ(^^)/」
プログラムの実行結果(Visual Studio2018の場合)
d
続行するには何かキーを押してください. . ._
プログラムの実行結果(Visual Studio2019の場合)
d
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 28264) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
マックス 「あれっ?なぜ・・・
アルファベットのdがでてくる・・・?
まず~~い バグったか・・・
バグバグちゃん
シングルクォーテーション' 'で囲まれてない
数値データ100をダイレクトに
printf関数の第2引数に入力してた
ソースコードがコンパイルされ実行されると
数値データ100が
コンピュータのメモリに格納され
それに%c出力変換指定子が作用して
アルファベットのdがでてくる。
はははっ たのしいなー。
もしや 100のひとつ前の数値データ99なら
%c出力変換指定子をつかってprintf出力表示したら
アルファベットのdの一つ前のcがでてきたりしてな?
な? ソーラー。」
ソーラー 「そうですね。数値データ99を
%c出力変換指定子をつかってprintf出力表示してみましょう。
#include <stdio.h>
int main(void)
{
printf("%c\n",99 );
return 0;
}
ソーラー 「コンパイルっ(^^)/」
プログラムの実行結果(Visual Studio2018の場合)
c
続行するには何かキーを押してください. . ._
プログラムの実行結果(Visual Studio2019の場合)
c
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 10388) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
マックス 「おおっ cがでてきたC~~~~~」
ソーラー 「そうです。われらがアルファベットcです。」
マックス
「あてずっぽうで数値データ99を
%c出力変換指定子をつかってprintf出力表示したら
cがでてくるんじゃないか
といったがホントにでてくるとは・・・
どうなってるの これ。」
ソーラー「おもしろいですね。とりあえず
いろいろ数値データをかえて代入してみましょう。
では11はどうなる・・・?
#include <stdio.h>
int main(void)
{
printf("%c\n",11 );
return 0;
}
ソーラー 「コンパイルっ」
プログラムの実行結果
・
ソーラー 「おもしろいマークがでてきました。
これはっ・・・
・?
数値データに対応していろいろな文字や記号がででくるようです。
いったい どれだけの文字や記号がかくれているんだろう?」
コレクション好きのソーラーの血がうずいているようです。
マックス
「かわいいなー
隠れ文字キャラ か(´▽`*)」
ソーラー 「マックス どんどん
いろんな数値データを代入してみましょう。」
マックス 「そうしてみよっか。ははは(^^)」
ソーラー「(^^)よーし では数値データ124を
%c出力変換指定子をつかってprintf出力表示してみましょう。
#include <stdio.h>
int main(void)
{
printf("%c\n",124 );
return 0;
}
ソーラー 「コンパイルっ」
プログラムの実行結果
Visual Studio2018の場合
|
続行するには何かキーを押してください. . ._
Visual Studio2019の場合
|
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 24780) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
ソーラー 「なんかテトリスの縦棒みたいのがでてきた。(´▽`*)」
うきうきするソーラー。
ソーラー 「これで横棒がでてきたら楽しいな。
テトリスパーツが揃っていく。」
マックス 「俺も
🍎数値データをコンピュータのメモリに格納してから🍎
%c出力変換指定子を使ってprintf出力表示させてみるぞっ。
55だっ。GO!GO! ははははは」
#include <stdio.h>
int main(void)
{
printf("%c\n",55);
return 0;
}
マックス 「コンパイルっ!」
プログラムの実行結果
Visual Studio2018の場合
7
続行するには何かキーを押してください. . ._
Visual Studio2019の場合
7
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 3328) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
マックス 「おおっなんと7がでてきた。
数値データ55を入力して7か・・・
これはおもしろいな
%c出力変換指定子をつかって
コンピュータのメモリに格納された数値データ55が
7と
printf出力表示されたか?
(^^)
芸が細かいな・・・
なんか親しみを感じちゃうなあ。だはは。」
ソーラー 「ほんとです。%c出力変換指定子には
ほんと親しみを
感じます。
面白い仕組みですね。
コンピュータが僕らの身近な存在になったみたいだ。」
このように
%c出力変換指定子には
プログラムが実行されると
コンピュータのメモリに格納された
🍓シングルクォーテーションで囲まれた半角英数字を🍓
そのまま
コマンドプロンプト画面に表示する
という機能のほかに
プログラムが実行されると
コンピュータのメモリに格納された🍓数値データ🍓を
別の文字や数字として
コマンドプロンプト画面に表示する
という機能もあります
メモリに格納された数値データを
%cキャラクター変換指定子をつかって
コマンドプロンプト画面にprintf出力表示する際
コンピュータはメモリに格納された数値データを
文字の画像データにつけられた番号と思って(⋈◍>◡<◍)。✧♡いるのです
ですから その番号を参照して
文字の画像データを
例えば今のように
数値データ
100
99
124
に対応する
文字の画像データ
d
c
|
などを
コマンドプロンプト画面に出力表示することができます
数値データ55に対応するのは
文字の画像データ
7
つまり
7という文字の画像データなんです
実にそのとおりで
%cキャラクター変換指定子をつかって
メモリーに格納された数値データを
コマンドプロンプト画面にprintf出力表示する際
コンピュータは数値データに
対応する画像データを
表示します
☆ ☆ ☆
1日がおわり
自分の家に帰りついたソーラー。
テーブルの上のパソコン静かに開く
ソーラー
「さて
お茶を飲みながら🍒
今日見つけた隠れキャラクター達を鑑賞してみよう。
ふふ~ん ふ~ん♪♪~~~~~♪~~~~~♪~~~
#include <stdio.h>
int main(void)
{
printf("%c",100 );
return 0;
}
プログラムの実行結果
d
これはキャラクター dを呼び出す呪文。
#include <stdio.h>
int main(void)
{
printf("%c\n",38 );
return 0;
}
プログラムの実行結果
&
これは &
安堵~~♪
ららら~~~♪
たのC~な~~~ うれC~~~とな~~~
ららららら~~~♪~~
この %c出力変換指定子をつかって
隠しキャラクターの扉 を ひらいてみよう
そこには きっと あなたの友達が いつも
まっているよ~~~~~~~♪♪♪
。。。。。。。。。。。。。。。。。。。。。。。。
このように
%cキャラクター変換指定子をつかうことによって
コンピュータのメモリに格納された
数値データに対応する
別の文字、記号を
コマンドプロンプト画面に表示することができます
このときの数値
たとえば
文字dに対応している100などをアスキーコードといいます。
文字dには100という番号が付けられている
つまり
文字の画像データdには100という番号がつけられている
のです
アスキーコードは
1から127までの128個
あり
アスキーコード
100
は
文字dを表示するためにもちいられたように
アスキーコード
21から126は文字の画像データを表示するために
もちいられ
アスキーコード
0から20は
コンピュータ機器の制御や
テキスト(文章)を作製するときに
もちいられます。
たとえば
テキスト(文章)を作製しているとき
アスキーコード10は
テキスト(文章)を改行するときにつかわれます。
アスキーコード127は
テキスト内の文字を1つ削除するときに
つかわれます。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます