C言語 キーボード入力を書式付きで取得 - stdio.h - [ scanf ]
2008.10.18 Saturday | by LRESULT
キーボードからの入力を書式付きで受け取るには、scanf()を使います。
printf()と並んでお馴染みな関数ですね。
書式 | int scanf( const char *format, ... ) |
---|---|
機能 | キーボードからの入力を書式付きで取得 |
引数 | const char *format : 書式文字列 ... : 可変個引数で書式で指定された変数のアドレスをカンマ区切りで指定します。 |
戻り値 | 成功すると、入力項目数を返し、 失敗すると、EOF(-1)を返します。 |
代表的なフォーマットを記載しておきます。
基本的には、printf()と同じものが多いです。
%で始まる記号を変換指定子と言います。
%d | 10進数 |
---|---|
%c | 文字 |
%s | 文字列 |
%o | 8進数 |
%x | 16進数(小文字) |
%X | 16進数(大文字) |
%f | 浮動小数点 |
%% | %(パーセント)記号を表示 |
10進数で入力された数値を、10進数で表示し、 16進数で入力された数値を、10進数で表示した後、入力された文字列を表示してみます。 |
---|
#include <stdio.h> int main(void) { int i; char s[100]; printf( "10進数で入力:" ); scanf( "%d", &i ); printf( "入力文字:%d¥n¥n", i ); printf( "16進数で入力:" ); scanf( "%x", &i ); printf( "入力文字:%d¥n¥n", i ); printf( "文字列を入力:" ); scanf( "%s", s ); printf( "入力文字:%s¥n¥n", s ); return 0; } |
10進数で入力:20 入力文字:20 16進数で入力:20 入力文字:32 文字列を入力:ABCD 入力文字:ABCD |
---|
と、表示されると思います。 それぞれキーボードからの入力を、scanf()で取得し、 printf()を利用して画面への出力を行っています。 |