2016-06-02 3 views
2

printf()のlc(C)とc/ls(S)とsの違いは何ですか?なぜls(S)変換は-1を返しますか?printfのlcとc/lsとsの違い

Exemple:Mac上で

printf("%C", 'ͳʹ); // -1 
printf("%c", 'ͳʹ); // PRINT 
printf("%S", "ͳ ans T"); // -1 
printf("%s", "ͳ and T"); // PRINT 

..

+0

あなたの質問をもっとはっきりと表現できますか?(C)と(S)はlcのために –

+0

Cを表すはずですが、それはSのようなものです。 – potheo

+0

Downvoted、質問にはそのような価値を返す。 [mcve]をお読みください。 – user694733

答えて

4

マニュアルページから:

l

(エル)[...]または以下のc変換wint_t引数に相当するか、またはそれに続くs変換wchar_t引数へのポインタに対応します。

だから変更タイプが期待されている:

  • %c - wint_t
  • %s - - 内部unsigned char
  • %lcに変換さintcharのゼロで終わる配列へのポインタ
  • %ls - pointer wchar_t

のゼロで終わる配列にprintf()からよう-1などの負の戻り値は、エラーが発生したことを示しています。 コードを表示していないため、さらに詳細を突き止めるのは難しいです。

関連する問題