C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: C言語 文字列の書式指定について


(過去ログ 126 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■74902 / inTopicNo.1)  C言語 文字列の書式指定について
  
□投稿者/ あおむし (1回)-(2015/02/08(Sun) 10:51:45)

分類:[C/C++] 

お世話になります。
char型文字列の書式指定方法"%s"ですが、
文字数を指定して"%10s"という書き方をすることがあると思います。

中には、"%-10.10s"、"%.10s"のような書き方をしているものもあります。
"-"は左寄せにするために使用していると思いますが、
"."を使用した書式についてよく理解できていません。(どう異なるか?と聞かれても説明できません)

参考になるサイトでも構いませんのでご教示いただきますようよろしくお願いいたします。

引用返信 編集キー/
■74903 / inTopicNo.2)  Re[1]: C言語 文字列の書式指定について
□投稿者/ Azulean (434回)-(2015/02/08(Sun) 11:05:08)
2015/02/08(Sun) 11:07:40 編集(投稿者)

No74902 (あおむし さん) に返信
> "."を使用した書式についてよく理解できていません。(どう異なるか?と聞かれても説明できません)

おおざっぱには小数点以下の桁数と考えてもらってかまわないでしょう。
%.2f なら 0.12、%.3f なら 0.123 というように。

MSDN には以下のようなページはありますが、読みづらいかもしれません。
https://msdn.microsoft.com/ja-jp/library/56e442dc.aspx
https://msdn.microsoft.com/ja-jp/library/0ecbz014.aspx

-----
漏れてました。
s(文字列)の場合は、最大文字数だそうです。
%10s であれば、10 文字未満の場合は空白でパディングされ、10 文字以上であればそのまま出力します。
しかし、%.10s なら 10 文字までという意味になります。

%10.10s なら 10 文字未満なら空白でパディング、10 文字ならそのまま、10 文字を超えるなら 10 文字までを出力ということなのでしょう。
引用返信 編集キー/
■74912 / inTopicNo.3)  Re[1]: C言語 文字列の書式指定について
□投稿者/ WebSurfer (497回)-(2015/02/09(Mon) 13:05:01)
No74902 (あおむし さん) に返信

> "."を使用した書式についてよく理解できていません。(どう異なるか?と聞かれても説明できません)

昔の(今も?)の C 言語のバイブル「プログラミング言語 C 第 2 版」の「付属 B 標準
ライブラリ」に書いてあるフィールド幅、ピリオド、精度の説明の抜粋をご参考に書いて
おきますね。

書式指定は % で始まり、変換文字(s とか d など)で終わり、その間には以下のものが
その順序であってもよいと書かれています(無いとどうなるかは書いてありません)。

%[フラグ][フィールド幅*1][ピリオド*2][精度*3][長さ修飾子]変換文字

*1: 最小のフィールド幅を指定する数。変換された引数は少なくともこの幅に、必要
  ならもっと広い幅のフィールドに印字される。

*2: ピリオド、フィールド幅と精度とを分離する。

*3: 数すなわち精度、文字列から印字すべき最大の文字数。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -