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:16
scanf を教える必要があるでしょうか?より、現実的な fgets, sscanf を教えるべきでは?
どうしても scanf にこだわるのであれば、書... 続きを見る
» 不適切なコメントを報告する
#2 はつね
- 2008/04/01 21:56:36
入力の書式ということでscanfを取り上げるのであれば、char a[11];に対する"%10s"を説明しなければならないと思います。また、それを指... 続きを見る
» 不適切なコメントを報告する
#3 性悪狐
- 2008/04/01 23:38:04
他の方のコメントの内容も当然のことなのですが、こんな大嘘を書いてはいけませんね。
>たとえば”%s,%s”とすれば、”abc def,ghi”を”ab... 続きを見る
» 不適切なコメントを報告する
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- ホワイトペーパー
- 企画特集
御社のログ活用しませんか!?
集積度も性能も、業界最高水準のブレードPC
中小企業のセキュリティリスクとは?
ロリポップ!がリニューアル
ESBでIT投資の無駄を劇的に解消する
SOA、BPM、SaaS −今、企業に必要なこと
パンデミック対策特集
今注目の「サジェスト検索」−デモ掲載中
インターネット上の悪意を未然に防ぐには?
セキュリティ&ユーザ事例【SIer Club】
ストレージメディア特設サイト開設
仮想環境を実現するソリューション特集
そのストレージで仮想化に対応できますか?
【徹底対談】運用管理ツールの賢い使い方
◆エン・ジャパン厳選求人☆毎週更新◆
- ■ストレージ容量50%削減保証■
- サーバー監視・運用のコストを削減するには
- サービス・ドリヴン・データセンター
- エンタープライズにおけるSUSEの強み
- 話題のタグ
iPod touch
Windows 7
セキュリティ
Firefox 3
Flash
CSS
iPhone 3G
UI
Webサービス
リファレンス
脆弱性
HTML
仮想化
Chrome
Database
Adobe
WebKit
Firefox
Linux
Safari
ソフトウェア開発
小技
Apple
JavaScript
Mac OS X
Opera
ブラウザ
データベース
Google
Tips
オープンソース
アプリケーション
ツール
開発環境
OS
Internet Explorer
モバイル
SOA
PHP
RIA
Mozilla
iPhone
Webデザイン
Windows Vista
Windows
Off Topic
プログラミング言語
Ajax
Microsoft
Java
話題のタグを見る »
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――