7章 キーボードからの入力

http://www.geocities.jp/ky_webid/c/007.html

ようやくここまで来ました。

キーボードからの入力の処理です。楽しくなりそうですね。

ここではどうやらscanf関数というものを使うようです。

最後まで読んでみるとどうやらこの関数はあまり使われないみたいですね。本来ならfgets関数というものを利用するらしいです。

ただ勉強する上では便利なので当面これを使うとのこと。おーけーおーけーわかりました。

    int input_num;
    scanf( "%d", &input_num );

これが使用サンプル。「&」ってのが付いてますねー。

これがみんなハマる「ポインタ」ってやつでしょう。怖いです。

とにかくこうすればプログラムを実行したときにキーボード入力待ち状態になるというわけですね。

上記の例は数値の入力待受けでした。

じゃあ文字列はどうするのという話ですよね。

    char str[80];
    scanf( "%s", str );

さっきと違い、「&」をつけてはいけないらしい。ややこしいけど今はそう覚える。

あとこのままだと80文字を超える入力があった場合にヤバイことになるらしいので通常は

    char str[80];
    scanf( "%79s", str );

と、このよーに配列の要素数と同じだけ受け取ると書けるみたいだ。

問題1

キーボードから整数を入力させ、それを2乗した結果を表示させるプログラムを作って下さい。

これは簡単。迷うところはない。

int main () {
    int num;
    
    scanf("%d", &num );
    printf("%d",num * num );
    return 0;
}

でけた。ただしエラーの処理とかはおざなり。ってかどうすればいいのかも良く分からないし。

問題2

キーボードから2つの整数を入力させ、それを足し合わせた結果を表示させるプログラムを作って下さい。

2つの整数ってことは二回入力させればいいのかな?

int main () {
    int num1,num2;
    
    scanf("%d", &num1 );
    scanf("%d", &num2 );
    printf("%d",num1 + num2 );
    return 0;
}

忠実に。うまく動きました。

問題3

負数(マイナスの数)を入力させても、正しく処理できるかどうか確かめてみて下さい。

試すだけなので試してみた。問題2のプログラムをそのまま利用。

$ main
-10
100
90
  • 10と100を入力すると90と表示された。うまくいってる模様。