掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.28217

出力する書式を変数に設定しての表示について
投稿者---こう(2006/09/20 11:28:25)


出力する書式を変数に設定して、表示を行っています。

書式を、「%%%s」にして、変数に格納し、出力時に指定
しているのですが、
表示は、行えるのですが、余分な、"%”が付与されて
しまいます。
どうすればよいのですか。


#include <stdio.h>

main()
{
    char fmt[] = {"Error Message(%%%s)"};
    char log_buf[256];

    sprintf(log_buf,fmt,"aaaaa");

    printf("[%s]\n",log_buf);
}


結果は、
[Error Message(%aaaaa)]

fmtの定義で、「%%%s」を「%%s」とすると
結果は、
[Error Message(%s)]



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:出力する書式を変数に設定しての表示について 28218 こう 2006/09/20 11:30:43


No.28218

Re:出力する書式を変数に設定しての表示について
投稿者---こう(2006/09/20 11:30:43)


すみません。
環境を書き忘れました。

Solaris8
UNIX-C
gccでコンパイル


この投稿にコメントする

削除パスワード

No.28219

Re:出力する書式を変数に設定しての表示について
投稿者---Blue(2006/09/20 11:36:08)


単に、%% はいらないだけなのでは?

char fmt[] = {"Error Message(%s)"};


この投稿にコメントする

削除パスワード

No.28221

Re:出力する書式を変数に設定しての表示について
投稿者---こう(2006/09/20 12:32:53)


>単に、%% はいらないだけなのでは?
>
>char fmt[] = {"Error Message(%s)"};
ありがとうございます。

以前、「%%%s」で上手くいってたのですが。


この投稿にコメントする

削除パスワード

No.28222

Re:出力する書式を変数に設定しての表示について
投稿者---Blue(2006/09/20 12:52:07)


>以前、「%%%s」で上手くいってたのですが。
予想。(つまり、2どsprintf系の関数を使っている)

const char* fmt = "%%%s";
char buff[ 256 ];
sprintf( buff, fmt, "s" );
printf( buff, "abc\n" );



この投稿にコメントする

削除パスワード

No.28256

Re:出力する書式を変数に設定しての表示について
投稿者---こう(2006/09/23 09:43:56)


>>>以前、「%%%s」で上手くいってたのですが。
>>予想。(つまり、2どsprintf系の関数を使っている)
>>
>><pre>const char* fmt = "%%%s";
>char buff[ 256 ];
>sprintf( buff, fmt, "s" );
>printf( buff, "abc\n" );</pre>

返事遅れて申し訳ありません。

2度、3度と使用しています。
それが、影響しているのでしょうか。
教えて頂いた、「%s」にしたら上手くいきました。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧