新着記事
08/24: 待ち時間・アカウントなしで4sharedにあるファイルをダウンロードするには
08/23: 色んな歌詞検索サイトから歌詞を探してくれる高機能歌詞検索ソフト -Lyrics Master-
08/01: フリーでいろんな国のIPアドレスを利用できるFireFoxのVPNアドオン -Hola Unblocker-
07/18: 著作権フリー・無料で利用できるBGMダウンロードサイト - audionautix
07/17: apngをブラウザ上で見るには
06/14: deviantARTなどで入手したテーマに変更するには
06/03: [KissAnime] - 日本語検索可能でいろんなタイトルが見れるアニメ無料視聴サイト
05/30: スマホをギターにして演奏してしまう動画
05/23: InoReader - シンプルで使いやすいRSSリーダー
05/18: [Apowersoft音声録音フリーツール] - PC・マイクから簡単に録音できるフリーツール
05/12: フリーのDNSへ簡単に変更出来るDNSチェンジャー - [ChrisPC DNS Switch]
05/11: C言語 入門 複合文について
05/10: TabsBy.Net - フリーで利用可能なオンラインTABプレーヤー
05/09: [Chrome Extension]Chromeで新しいタブを開いたときにWindows8のメトロ画面にするExtension - New MetroTab
05/06: Bop.fm - フリーでクールなインターフェイスのオンライン音楽プレーヤー
05/05: iAlbums - アルバムごとにカテゴライズされたプレイリスト作成も可能なオンライン音楽プレーヤー
09/20: [B1 Online Archiver] オンライン上で圧縮ファイルを解凍できるサイト
09/15: Operaの旧バージョン(15以前)にXSSの脆弱性が
09/10: ペルセウス座流星群を1分で
08/29: スマホアプリ紹介サイト
RSS feeds

2010年06月06日

C言語 入門 入力のために必要な関数[scanf関数]

ちょっとサボってしまいましたがのんびりC言語の勉強していきます。
さて、今まではプログラムを書いて結果を表示するという作業でしたが
今回からはキーボードから数値を入力させてプログラムっぽくしていきましょう。

そこで今回勉強するのは「scanf関数」です。
キーボードから入力させるときはこの関数を使います。


scanf関数


scanf関数」はプログラムを実行したときにキーボードから数値などを入力したときに入力されたデータを読み取ってくれる関数です。

使い方は
scanf("入力変換指定子",&変数名);

入力変換指定子」という言葉が出てきました。
これはキーボードから入力された数字を数値へと変換してくれる指定子です。
以前「出力変換指定子」を勉強したのを覚えていますでしょうか?
「printf関数」のときに使いましたね。
この出力変換指定子と、ほとんど同じように使用出来ます。
「%d」とかは同じように使用して問題ありません。

もう一つ、「変数」も覚えていますか?数値を記憶するメモリのようなものでしたね。
この「変数」はscanf関数とセットです。

今まではプログラム上で「変数に数値を代入」させて来ましたが、
「scanf関数」を使うとプログラムを実行してキーボードから入力した数値を宣言した変数に「代入してくれる」わけです。

つまり今まで「int ax = 10;」のように数値を「絶対的に指定」していましたが、
「scanf関数」を使えば実行されたプログラム上で数値を「自由に指定」出来るわけです。

「scanf関数」は「キーボードから数値を読み込み、その値を変数に代入してください」という命令をコンピュータにするわけです。

ただし、「printf関数」と同じように「説明書」が必要です。
これはprintf関数と同じ「#include <stdio.h>」で、この中に説明書があるので書くのは1回で大丈夫です。

また、変数名の前に「&」記号をつける必要があります
この理由はちょっと長くなってしまいますのでいずれ改めて説明します。
それまでは変数名の前に「&」記号をつけるということだけを忘れずに覚えておきましょう

ではおさらい
「scanf関数」はキーボードから数値を読み込み、その値を変数に代入する
使い方は「scanf("入力変換指定子",&変数名);」
#include <stdio.h>が必要
変数名の前に「&」記号をつける必要がある



キーボードからの入力


さて、説明はここまでにして実際に使ってみて覚えていきましょう。

とりあえずプログラムを実行したときに入力した数値を表示させて見ましょう。

使う関数は「scanf関数」と、表示させる関数「printf関数」を使います。
適当な数値を入力したら「Enterキー」を押してください。ここでは999を読み込ませます。
#include <stdio.h>

int main(void)
{

    int num;

    printf("整数を入力してください:");
    scanf("%d", &num);

    printf("%dと入力されました。¥n", num);

    return 0;
}

実行結果
整数を入力してください:999↵
999と入力されました。


何にも無いところに入力するよりは何か指示があったほうが分かりやすいと思い、
「整数を入力してください:」という文字列を表示させて見ました。

ちなみにこれは「整数」の場合ですね。実数の場合は何を使えばいいかもうご存知ですね。
#include <stdio.h>

int main(void)
{

    double num;

    printf("数値を入力してください:");
    scanf("%f", &num);

    printf("%fと入力されました。¥n", num);

    return 0;
}


実行結果
数値を入力してください:999.99↵
000.000000と入力されました。


あれ、結果が「0」になってしまいますね。
実はこれちょっと間違っています。というか一文字足りないんです。

何に問題があるかというと、出力変換指定子」に問題があります

整数の場合は「%d」で大丈夫なんですが、
実数の場合は「%f」ではなく、「%lf」としてやらないといけないんです。

出力変換指定子は入力変換指定子と全く同じではなくほぼ同じように使えるといったのはこれがあるからです。
まあ「l(英字のエル)」を付け加えるだけなのでそこだけは忘れないようにしてください。
私は良く忘れます。

scanf関数で実数を読み込ませるときは出力変換指定子「%lf」を使用する。
printf関数で実数を表示させるときは入力変換指定子「%f」を使用する。


ということになります。

正解はこちら
#include <stdio.h>

int main(void)
{

    double num;

    printf("数値を入力してください:");
    scanf("%lf", &num);

    printf("%fと入力されました。¥n", num);

    return 0;
}


実行結果
数値を入力してください:999.99↵
999.990000と入力されました。


「l」を忘れないようにしましょう。

ではもう一度おさらい
「scanf関数」はキーボードから数値を読み込み、その値を変数に代入する
使い方は「scanf("入力変換指定子",&変数名);」
#include <stdio.h>が必要
変数名の前に「&」記号をつける必要がある
scanf関数で実数を読み込ませるときは出力変換指定子「%lf」を使用する。

これ以上は長くなってしまうので次回に続きます。
次回は複数値を入力する場合です。

メニューへ戻る



タグ:C言語


↓もしこの記事が役に立ったらクリックお願いします。
人気ブログランキングへ ブログランキング・にほんブログ村へ



posted by Yuichi at 22:10 | Comment(0) | TrackBack(0) | プログラミング>C言語 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

Copyright (C) 2009-2010 Yuichi All Rights Reserved.