SSブログ
サイト移しました 書いてた記事も結構移してます こちらからどうぞ







VC++でC言語入門:scanf()で数字を読み込み計算 [C言語入門]



スポンサードリンク





こんにちは菊月です。

前回はint型の変数を使って計算しました。

今回はそのint型の変数に入れる値を
scanf()を使いキーボードから入力しましょう

ちょっとプログラムらしさが出てきますね(?)

scanf()のfは、printf()のfと同じで
書式付きで文字を入力します。

使い方は

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

という感じに使います。

"%d"  10進数で読み込み
&a   変数の前に&を付けるので注意
間にはコロン「 , 」が付くので注意です。

ではいってみよー

VC++

図1


今回ちょっと文字の表示で
printf()だけでなく
puts()を使ってみました。

これは¥nを書いていなくても表示で
改行を勝手に付けてくれます。
ただし

puts("%d",a);

という書き方はできないので注意。
あくまでも文字の表示だけです。
テキスト版(図1)
//--------------------------------------------
#include <stdio.h>

void main(){

    int a, b;

    puts("整数を2つ入力してください");

    scanf("%d", &a);
    scanf("%d", &b);
    
    //バッファに残った改行文字(\n)の対処
    getchar();

    printf("%d+%d = %d\n", a, b, a+b);
    printf("%d-%d = %d\n", a, b, a-b);

    //終わるのを防ぐ
    getchar();
}

//--------------------------------------------


実行すると図2のような画面になるので
「10」と入力してエンターキーを押します

次に図3のような画面になるので
「22」と入力してエンターキーを押します

ちなみに数字は何でもいいです。


VC++

図2

VC++

図3


で、これ実行した時、たぶん一瞬で終わります。

原因はちゃんとあって
数字入力→エンター
とすると、内部では次の図のようなことが起こります。

VC++

図4

数字が入力が終わると、「¥n」が内部に残ってしまって、
最後のgetcahr()の時に、
内部にある「¥n」が入力されたことになります。

じゃあ対策は?ということで、
もう一個getchar()を加えるだけです。

テキスト版改良版
//--------------------------------------------
#include <stdio.h>

void main(){

    int a, b;

    puts("整数を2つ入力してください");

    scanf("%d", &a);
    scanf("%d", &b);
    
    //バッファに残った改行文字(\n)の対処
    getchar();

    printf("%d+%d = %d\n", a, b, a+b);
    printf("%d-%d = %d\n", a, b, a-b);

    //終わるのを防ぐ
    getchar();
}

//--------------------------------------------

これで今度こそ次のような実行画面が現れます。


VC++

図5


という感じです。

これをもう少し解り易くして見ましょう。


VC++

VC++


プログラムのテキスト版
//---------------------------------------
#include <stdio.h>

void main(){

    int a, b;

    puts("整数を2つ入力してください");

    printf("整数1:");
    scanf("%d", &a);

    printf("整数2:");
    scanf("%d", &b);

    //バッファ対策
    getchar();

    printf("%d+%d = %d\n", a, b, a+b);
    printf("%d-%d = %d\n", a, b, a-b);

    //終わるのを防ぐ
    getchar();
}

//---------------------------------------


これで、誰が実行しても
ちょっと親切になります。

プログラムは
実行して見て、わかり易いというのも重要です。

仕事や研究、課題などは

完成を第一、完成したらわかり易くする

というのを目指してください

ではではまた次の記事で会いましょう。


スポンサードリンク



nice!(0)  コメント(1)  トラックバック(0) 
共通テーマ:資格・学び

nice! 0

コメント 1

Renaldo

私は、この種のスペースで高品質の記事やブログ記事を少し探してきました。
Yahooでの調査私はついにこのサイトを見つけました。

この情報を勉強していますので、私はそれを伝えてうれしいです
私はまさに私が見つけた
必要です。私は確かにこのサイトを覚えておくことを確実にし、
それは定期的に一見。
by Renaldo (2018-03-01 23:18) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました




QLOOKアクセス解析

  
  
  
  

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。