表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
9/37

第七話 入力


 立花先輩は、猛烈にキーボードを叩き続けてから言った。

「よし出来た」

「はやっ」

「で、こっちが、数を入力できるヴァージョン。見てみて」

 俺はモニターを覗き込んで、先輩が作ったばかりのコードを見た。



/* 今度は数も入れられるよ calcprogram2.c */

#include<stdio.h>


int main(void)

{

    int a,b,result;


    printf("最初の数を入れてね : ");

    scanf("%d",&a);


    printf("次の数を入れてね : ");

    scanf("%d",&b);


    result = a + b;


    printf("\n"); /* ひとまず改行 */

    printf("%d + %d の答えは、%dです!\n",a,b,result);


    return 0;

}



「あ、今度のは、calc関数は無いんだ」

「あれは説明用だしー。なるべくmain関数だけにした方が、解りやすいでしょ? じゃあ走らせてみるわよ」

 先輩はコマンドプロンプトでプログラムを走らせた。


C:¥sample>gcc -o calcprogram2 -Wall calcprogram2.c


C:¥sample>calcprogram2

最初の数を入れてね: _



「あ、カーソルが出た」

「ここで数を入力してエンターするのよ。じゃあ、5 + 3を入れてみる」


最初の数を入れてね: 5 [ENTER]

次の数を入れてね: 3[ENTER]


5 + 3 の答えは、 8です!


C:¥sample>_


「おおっ」俺はつい歓声を上げる。

「もう一度やってみるわよ。今度は 2 + 1」


C:¥sample>calcprogram2

最初の数を入れてね: 2 [ENTER]

次の数を入れてね: 1[ENTER]


2 + 1 の答えは、 3です!


C:¥sample>_


「ほら。またコンパイルしなくても、何度でも使えるようになったわ。入力と画面への出力の方法を知ってれば、最低限のアプリは作れるわね」

「これって引き算とかも作れるんですか?」

「うん。コードの a + b のところを a - b にするだけ。ただ、掛け算と割り算にはちょっと気をつけてね。どちらも、C言語やほとんどの言語では×や÷の代わりに * や / の記号を使うの。昔は使える文字数が限られていたから、×÷記号が無かったからだけど……」

「ふむふむ、わかりました」

「よし。じゃ、コードの説明に入るよー」

 先輩は再び、calcprogram2.cのコードのウィンドウを前面に出した。


「まずint a,b,result。こういう風に、使う変数は一行で同時に宣言できるの」

「はい」

「あとは、このコードで説明すべきなのは、scanf()関数ね。残りは、問題なく理解できると思う」

「scanf関数で入力するんですよね?」俺は推測した。

「うん。ま、見ての通りなんだけど。これは、printf()関数と対になっている関数で、1つめの引数の%dのフォーマットの型データ――つまり整数、int型ね――をユーザーの入力から受け取って、2つめの引数に指定した変数に入れるって関数なの」

 俺は一つ、疑問を口にした。

「先輩、2番目の引数の&aって、なんです? aじゃないんですか?」

「そっ、それは……」

 先輩は口ごもった。お? なにか恐るべきCの秘密に俺は触れてしまったようだ。

「えっ、えーっと……まだイツキくんは、コンピューターのメモリーアドレスについてわからないと思うから、今はまだ内緒」

「は?」

「変数のメモリーアドレスを引数として提供する、という説明じゃ……ダメ?」

「さっぱりわかりませんが」

「と、とにかくっ。2番目の引数には数を入れたい変数を書いておくの。その前の&は、『とりあえず無視』して」

「は、はぁ……」

「あとは、最後のprintf()関数みたいに、第一引数のフォーマットで指定すれば、残りの引数はいくらでも入れられるってことも覚えておいて。では、コードの解説はこれでおしまいっ」


 うーむ。ちと釈然とせんものがある。

 まぁ、先輩の目から見れば、俺はまだまだ未熟なのだろう。

 メモリーアドレス、か。


「でもね、最後に一つ、最大の忠告をするわ」先輩が改まった口調になって言った。

「このscanf関数は――なるべく使わない方がいい関数なの」

「え?」


 先輩は、説明を続けた。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ