2016-05-12 7 views
0

、これは正しいでしょう:変数 `)(のprintf`に文字列出力を変更するために - 私はこれまで理解とCではC言語

printf("%10s\n", "This is C"); 

を返します:

" This is C!" 

(と文字列の前の意図的なスペース;引用なし)。

私の質問は、変数を使用して印刷の長さを指定する10を置き換えることができますか?もしそうなら、どうですか?フォーマットは%*s%10sから変更

printf("%*s\n", 10, "This is C"); 

:方法です

+0

詳細: '10'はプリントの長さを指定しません。 _minimum_の長さを指定します。出力がどこから来たのか不明です。 – chux

答えて

1

printf()は今や文字列の前に引数の中に文字列を埋め込む幅のint(上記の例では10、明らかに変数でもあります)を期待しています。

printf()に、出力を左に(デフォルトの権利ではなく)塗りつぶすには、-%-*sを使用してください。文字列からわずか数最初のバイトを取るためにprintf()を伝えるために

を(出力は。"This is C "" This is C"から変更します)、または文字列はnull終端されていない場合は、同じ場所でのフォーマットに.*を追加することができます浮動小数点型の精度として使用します。 printf()は、その数の文字まで印刷し、最初のヌル文字で停止します。例:

int width = 10; 
int chars = 4; 
printf("%-*.*s", width, chars, "This is C"); 

出力は"This "となります。

+0

コードにコンテキストを追加してください。 – ppperry

+0

@ppperry、更新された答え。 – Dummy00001

関連する問題