Home / 記事 / プログラム言語 / C / 第 1 章 : C言語入門 始めに(書籍のプレビュー) / 入力を受け付ける

e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。

オンライン書籍; インド式プログラミングバイブル C言語入門 (上)

第 1 章 : C言語入門 始めに(書籍のプレビュー)

インド式プログラミングバイブル     C言語入門
インド式プログラミングバイブル C言語入門


この記事は、2008年4月から発売の「インド式プログラミングバイブル C言語入門 (上)」より掲載しました。書籍の情報は、こちらをご覧ください

入力を受け付ける

前述のプログラムでは、p、n、rの値が、それぞれ1000、3、8.5であるとしました。プログラムを実行するたびに、同じ値が単利として得られます。他の組み合わせの値を使って単利を計算したい場合には、プログラムの中の対応する場所を変更して、再度コンパイルし、実行しなければなりません。つまり、このプログラムは、プログラム自体を変更せずに、どんな値からでも、柔軟に単利計算ができるようになっていません。それに、このプログラムのEXEファイルを配った場合、プログラムの変更方法がわからない人が使う可能性もあります。そこで、プログラムには、どんな値でも対応できる柔軟性を持たせた方が良いでしょう。

プログラムにそのような機能を持たせるには、実行中に、ユーザにキーボードからpnrの値を入力させるようにします。この機能は、scanf( )と言う関数を使って、実現できます。この関数は、printf( )と対になる関数です。printf( )は画面に値を出力し、scanf( )はキーボードから入力される値を受け付けます。具体的には、次のプログラムのようになります。

/* 単利の計算 */
/* Author gekay Date 25/05/2005 */
# include <stdio.h>
void main( )
{
    int   p, n ;
    float   r, si ;

    printf ( "Enter values of p, n, r" ) ;
    scanf ( "%d %d %f", &p, &n, &r ) ;

    si = p * n * r / 100 ;
    printf ( "%f" , si ) ;
}

1つめのprintf( )は、画面に「Enter values of p, n, r(p,n,rの値を入力してください)」というメッセージを表示します。この例では、printf( )に式は含まれていません。つまり、printf( )における式の使用は、必須ではありません。

scanf( )関数内の変数の前に付けられているアンドマーク(&)は、必須であることに注意してください。この&は、「アドレス演算子」です。アドレス演算子は、メモリ上の変数が使用する位置番号を提供します。&aと記述することにより、ユーザがキーボードから入力した値を、メモリ上のどこに格納するべきかscanf( )に指示しています。&演算子の働きの詳細については、第5章で詳しく述べます。

scanf( )に渡す値は、空白かタブ、改行で区切らなければならないことに、注意してください。空白は、スペース キーで、タブはTABキーで、改行はEnterキーで入力できます。以下が入力例です。

例:3つの値を、空白で区切る場合
1000 5 15.5

例:3つの値を、タブで区切る場合
1000    5    15.5

例:3つの値を、改行で区切る場合
1000
5
15.5

この例で、大体理解できたと思います。もう少し具体的に、プログラム例で、見てみましょう。

/* Just for fun.  Author: Bozo */
# include <stdio.h>
void main( )
{
    int   num ;

    printf ( "Enter a number" ) ;
    scanf ( "%d", &num ) ;

    printf ( "Now I am letting you on a secret..." ) ;
    printf ( "You have just entered the number %d", num ) ;
}

コメント

コメントするにはログイン、もしくはユーザ登録を行ってください。

発売中

LET US C(上)
インド人ITエンジニアのCプログラミングのバイブル。通算100万冊以上売れています。
― 2,520円 ―

Y. Kanetkar

発売中

Introduction to Object Oriented Programming & C++
C++を例に、多彩なサンプルコードと簡潔な説明でOOPプログラミングの実際が理解できる。
2,940

Y. Kanetkar

発売中

Microsoft .NET Web Application Security
APプログラムの作り方で不正侵入の防御率を向上させる手法を解説。今までにないセキュリティーの手法を紹介します。
3,990円

Vijay Mukhi

2008年の11月発売予定

Quest C++ ビジュアルラーニングコース
これがあれば、見て聞くだけで楽しみながらプログラミングテクニックが身につきます。
― 9,975円 ―

Y. Kanetkar Asang Dani

2008年の11月発売予定

Programmer's Guide to Web Application Security
Web System への侵入方法と原理を解説する事により、防止方法を理解することが出来る。
3,990

Vijay Mukhi

フォーラムの最新ポスト