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件)
- 今日のトップ記事
- 昨日
- 2日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
脆弱性
iPod touch
Tips
Firefox 3
OS
インストール
Linux
Windows XP
Database
JavaScript
Windows Vista
データベース
ブラウザ
Webデザイン
Mozilla
Java
マイクロソフト
リファレンス
Opera
仮想化
Chrome
Webサービス
CSS
アプリケーション
HTML
iPhone 3G
UI
Mac OS X
Firefox
Off Topic
Internet Explorer
Windows
オープンソース
iPhone
Apple
Ajax
開発環境
Windows 7
RIA
Microsoft
セキュリティ
プログラミング言語
モバイル
小技
Flash
Safari
ソフトウェア開発
クラウド
WebKit
Google
話題のタグを見る »
モジラ、「Thunderbird 3」のRC1版をリリース
Snow LeopardではNTFSをサポート--その源流を訪ねる(3)
「Google Chrome」の拡張機能、開発者からのアップロード受付を開始
IMAPでGmailを受信、最も手っ取り早いのは?Windows 7、Ubuntu 9.10、Snow Leopardのメーラー比較
Snow LeopardではNTFSをサポート--その源流を訪ねる(2)
MS運営のオープンソース開発プロジェクト支援サイト「CodePlex」を探検する(2)
Snow LeopardではNTFSをサポート--その源流を訪ねる(1)
【最終警告】パンデミック対策特集
企業ITシステムの企画、構築、運用のイロハ
―エン・ジャパン厳選求人☆毎週更新―
100万円で実現!中小企業の情報漏えい対策
電力に"ふた"をする独自の省エネ機能とは!?
大丈夫?あなたの会社のセキュリティ対策
高まるiSCSIストレージへの注目度