C/C++のデータ型と書式を知る:入力の書式
沖林正紀
2008/02/27 08:00
データ入力の書式はほとんど出力の場合と同じだが、少しだけ異なるところもある。
データを入力する関数
まず、データを入力するときに用いるscanf()関数について紹介しておきたい。これはキーボードなどの標準入力からデータの入力を受け付ける。この中で前回紹介したような書式を表す文字列を用いる。
キーボードから半角10文字までの文字列を入出力する例を以下に示す。
#include
..........
char a[11]; /* 半角10文字分の文字列を保持する変数(配列) */
scanf( "%s", a ); /* 変数aに文字列を入力 */
printf( "%s\n", a ); /* 変数aの値を出力 */
まず、データを入力するには、入力されたものをプログラム内で保持しておくために変数が必要だ。scanf()関数は、書式にしたがって入力したデータを変数に代入して保持させる。戻り値は代入した値の数だが、うまく入力ができなかったときはEOFという特別な値となる。
複数の値の入力
複数の値を入力する場合は、データを保持する変数も複数必要だ。たとえば半角10文字までの文字列を入出力する場合の例を以下に示す。
char a[11], b[11]; /* 半角10文字分の文字列を保持する変数(配列) */
scanf( "%s %s", a, b ); /* 変数a, bに文字列を入力 */
printf( "%s %s\n", a, b ); /* 変数a, bの値を出力 */
出力の書式で”%s %s”と記述されているときは、2つの文字列の間に1つの半角空白が出力される。しかし、入力の書式におけるこの空白は、データの区切りを意味する。具体的には、空白以外に改行やタブ(Tab)でもよい。改行やタブもASCIIコードに含まれる、れっきとした文字の一種(制御文字)であることを思い出してほしい。
また、2つの文字列の間に入るこれらの区切りは、複数で連続している場合、それを書式上の1つの区切りとする。そのため、これらも文字列の一部として入力したい場合は、別の方法が必要となる。
- コメント(3件)
#1 ちゃっぴ
- 2008/03/29 22:46
scanf を教える必要があるでしょうか?より、現実的な fgets, sscanf を教えるべきでは?
どうしても scanf にこだわるのであれば、書... 続きを見る
» 不適切なコメントを報告する
#2 はつね
- 2008/04/01 21:56
入力の書式ということでscanfを取り上げるのであれば、char a[11];に対する"%10s"を説明しなければならないと思います。また、それを指... 続きを見る
» 不適切なコメントを報告する
#3 性悪狐
- 2008/04/01 23:38
他の方のコメントの内容も当然のことなのですが、こんな大嘘を書いてはいけませんね。
>たとえば”%s,%s”とすれば、”abc def,ghi”を”ab... 続きを見る
» 不適切なコメントを報告する
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- ホワイトペーパー
- 話題のタグ
Mozilla
Tips
PHP
Windows 7
Microsoft
Mac OS X
iPod touch
Apple
iPhone 3G
Chrome
仮想化
データベース
インストール
Webサービス
UI
Windows Vista
Firefox 3
Windows
OS
リファレンス
Firefox
Linux
アプリケーション
Ajax
CSS
プログラミング言語
HTML
ブラウザ
Safari
小技
開発環境
JavaScript
Internet Explorer
Flash
RIA
Java
iPhone
Off Topic
モバイル
Google
Database
Windows XP
脆弱性
Opera
セキュリティ
WebKit
オープンソース
マイクロソフト
ソフトウェア開発
Webデザイン
話題のタグを見る »
グーグル、JavaScriptプログラミングツールをリリース
Windowsの歴史 Windows Server 2008編:同じカーネルを持つ「Vista」とは対照的に早くから支持を得たサーバOS
Windowsの歴史 Windows Server 2003 R2編:安定性と先進性の両立目指す「R2」の先駆けとなったOS
モジラ、「Firefox 3.6」の第1ベータ版をリリース
最大32個のセンサーが電力を徹底管理!
【最終警告】パンデミック対策特集
100万円で実現!中小企業の情報漏えい対策
―エン・ジャパン厳選求人☆毎週更新―
大丈夫?あなたの会社のセキュリティ対策
企業ITシステムの企画、構築、運用のイロハ
進むストレージ環境の見直し