概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C scanf/printf関数
2006年07月04日 (火) | 編集 |
コンピュータとのデータの入出力を行う関数について。

プログラムは変数とか使って色々やってくれるのだが、その変数にデータを入力したり、得られた変数の内容をディスプレイに出力したりしなくてはならないわけだ。
それに使われる関数が、データの入力を行うscanf(スキャンエフ)と、データの出力を行うprintf(プリントエフ)、だそうだ。printfについては最初にやったな。

scanfでキーボードからデータを変数に入力し、printfで変数のデータをディスプレイに出力するって事だ。というかそう書いてある。ここら辺は特に説明いらんよな? 単なる入出力の話だ。

とにかくやってみよう。

scanfで整数データを入力し、次にprintfでその整数データを出力してみる

#include <stdio.h>
void main(void)
{
int a;
scanf("%d",&a);
printf("%d\n",a);
}

こんな感じ。

io1b.jpg
入力された2943を次の行で出力している

自分で入力した実数データを返すだけの単純なプログラムだが中々面白い。

面白いよ?

なにせ、





今まさに俺の意思はCPUと一体化し、意識は無限の数列となり、1と0の2択の無限の世界にて雄々しく羽ばたくのだ。これを面白いと呼ばずに何を面白いと呼ぶのか。
おお世界よ、我が名は汝が中心より汝が果てまで等しく響き渡れり! ハイホー



さて、コードに何か見慣れぬ文字が含まれている事に気付くと思う。
scanf("%d",&a)%d&aだな。まったく何なのかね君達は?
2回目にCを始めた時にはこの不可解な存在が気に入らなくて途中で放り出してしまい、今まで放置していたわけだが、今度ばかりは避けては通れまい。
恨みは無いが、我が理解の礎となって貰うとしよう。
まずは日本人らしく形からだ。

printfscanfの中の"%d"書式制御文字列と呼ばれている。

この書式文字列はいくつかの種類があり、今回の場合は変数aにデータを10進整数(aをint型で宣言したからだろうか)で入/出力しろやといった意味を持つそうな。
10進整数ってのは普段俺らが使っている、1、2、3、4、5、6、7、8、9…と続いて0に戻る(=10)数字のことだぜ。0から9まで行けば最初に戻る、それ故の10進数だ。多分な。

ちなみに他の書式制御文字列はこんな感じだ。
%f…実数
%s…文字列
%c…文字
%x…16進整数

形式終了。

要するに、printfscanf(もしかしたら他の関数も)に変数が使われる場合、%何とかの書式制御文字列が必要になるのではないかと思われる。

次は&aだが、これはそれこそ変数aprintfscanfで扱うということを指定している文字列ではなかろうか。これが無いと変数aを扱っているのか変数bを扱っているか分からないからだ。
ちなみに&scanfで変数を扱う時は変数の前に書くことになっている、つまるところお約束だそうだ。悩む余地が無くていいことだな。

まとめてみる。

scanfで入力し、printfで出力する。
scanf、printfで変数を扱う時は%某で示される書式制御文字列を使う。
%某は某の部分の文字でデータの型を指定する。
どの変数を扱うかを指定する為に、「,」の後で変数の指定をする。
scanfで変数を扱う場合は前に&をつける。


以上。

どうせなので上のコードをちょっと弄くってみよう。


#include <stdio.h>
void main(void)
{
int a;
printf("数字を入力してください>>");
scanf("%d",&a)
printf("入力された数字は%dです\n",a);
}

こんな感じになる。

io2b.jpg
;忘れんなよー

折角なので更にみさくら語変換してみた

io3.jpg




おおう。





よく分からんがとにかくOK!

ああ、理解がこんなにも心地良い。






ぁあみ゙ゃ゙あ゙あ゙ッあ あぉぁあみ゙ゃ゙あ゙あ゙ッあ あぉ、おぉッ、りかいぃがこんにゃにもここちい、イイッv よいぃぃッ、いひぃッ
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。