スキャン集合体の一覧を知りたい – プログラミング – Home

スキャン集合体の一覧を知りたい
 
通知
すべてクリア

[解決済] スキャン集合体の一覧を知りたい


ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

ネタ元は次の質問より。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200803/08030005.txt

この質問を読んでscanfのスキャン集合体を詳しく知りたくなりました。
επιστημηさんがMSDNサイトのリンクを載せていますが
どこかに載っているのですか?

http://msdn.microsoft.com/library/ja/vclib/html/_crt_scanf_Type_Field_Character
s.asp
このリンクに [ ] と ^ 文字が使えることが書かれていますが
スキャン集合体で使うのはこの3文字だけですか?

スキャン集合体の記述一覧(例)や使い方が載っているサイトがあれば
教えて下さい。よろしくお願いします。


引用未解決
トピックタグ
ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

リンクが正しくなかったので訂正。
http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/vclib/html/_crt_format_specification_fields_.2d_.scanf_and_wsca
nf_functions.asp


返信引用
フレア
 フレア
(@フレア)
ゲスト
結合: 17年前
投稿: 9
 

 スキャン集合とは、
scanf(%[],&i); の[]のことです。

例えば、[a]なら、aだけ入力を受け付けるという意味で、

[a-z]なら、aからzまで入力を受け付けるという意味です。

abf758なら、[a]の場合、a以外は読み飛ばし、[a-z]の場合、7のところで読み飛ばします。

[^a-z]は、a-zは入力を受け付けない、すなわち、最初にaがきてるから、すべて読み飛ばしま
す。

ちなみに scanf(%d*%c%d, ) とすると、111-222と入力する場合、-だけ読み飛ばします。

独習C第3版のscanfの節で知りました。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

http://msdn2.microsoft.com/ja-jp/library/xdb9w69d.aspx
↑ココの「区切られていない文字列の読み取り」のトコかな。


返信引用
麩
 麩
(@麩)
ゲスト
結合: 17年前
投稿: 95
 

Wikipediaの記述も結構充実してるようです。
http://ja.wikipedia.org/wiki/Scanf
あとはLinuxとかのmanでも
http://www.pinkdragon.net/doc_lib/contents/ja/linux_man/scanf.3.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html
[a-z]などの指定は標準ではないがよく行われる拡張…なのかな。
manでの説明だと集合に特殊な記号を入れる方法も書いてあるので、VCで使
う分にも読む価値はあるかもしれません。

MSDNのscanf、printfの説明ってリンクが半端だったり、どうにも参照し難いんで
すよね…

本筋からそれますが補足
>ちなみに scanf(%d*%c%d, ) とすると、
%d%*c%dでは?


返信引用
ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

フレアさん、επιστημηさん、麩さん。
書き込みありがとう。

貼ってあるリンクを読み意味とか、使い方は分かりました。
でもどう活用してよいのかが疑問です。

便利そうですが
普段どんな感じで使っていますか?
利用法などを知りたいです。
(分かりやすい例え、活用法があればお願いします)


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 普段どんな感じで使っていますか?

scanf, fscanf の類を使うことがありません。


返信引用
ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

> scanf, fscanf の類を使うことがありません。
僕もほとんど使ったことがないんです。
普段はfgets使って自分でパースしているから。

もしかしてscanfとかってC言語の教科書にある
簡単な入力ぐらいしか利用価値がないのでしょうか?


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

scanfってキー入力だから
いつか誰かが間違って入力することがあるからなあ。
簡単な入力でも使わないんじゃない。


返信引用
ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

> 簡単な入力でも使わないんじゃない。
そうですか。

皆様。
いろいろとありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました