2

コードは次のとおりです。

errorLog.OutputSuccess("Filename reference: %c", *t_current_node->filename);

もちろん、最初の文字のみを出力します。->filename[nameLen]nameLen が 10 の有効な整数であるようなものを追加すると、次のように表示されます。

* のオペランドはポインターでなければなりません。

ありがとう!

4

3 に答える 3

7

文字列が で終了している場合は、代わりに次\0を使用できます。%s

errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);

また、 filenameのメモリ アドレスを渡す必要があるため、*シンボルを失います。

于 2011-04-28T01:31:27.170 に答える
2

%s を使用して、*

 errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);
于 2011-04-28T01:31:29.123 に答える
0
  • %c単一の文字を出力します。
  • %s文字列を出力します: 終端の までのすべての文字\0
  • %.10s文字列の最初の 10 文字 (文字列が短い場合はそれ以下) を出力します
  • %.*s出力する長さを示す整数と文字列ポインタの2 つの引数を取ります。

最後のケースの例:

printf("Filename reference: %.*s", nameLen, t_current_node->filename);

于 2011-04-28T08:52:13.080 に答える