“%-9s”有什么作用?

时间:2013-10-08 13:09:59

标签: c format-specifiers

我正在开发一个C项目,现在正在使用开源方法集成到我的代码中。在浏览代码时,我遇到了一个 printf 语句,如下所示:

printf("%-9s",someString);

我理解格式说明符%s ,但%9s 是什么?

我尝试寻找解决方案,但没有成功。任何帮助都会有用。

3 个答案:

答案 0 :(得分:9)

printf("%-9s",someString);  

9是场宽。如果您将字符串作为Hi传递,则会打印Hi和七个空格。

如果您将字符串作为Hai传递,则会打印Hai和六个空格。

-说左对齐。

修改

这些代码行解释了更多。

 printf("\n%-9s%s", "Hello", "World!");  // left align,   Here "Hello" is five characters, because of width -9, prints 4 more spaces after Hello  

 printf("\n%9s%s", "Hello", "World!");   // right align,  because of width 9, prints 4 more spaces before Hello  
 printf("\n%+9s%s", "Hello", "World!");  // right align,  because of width 9, prints 4 more spaces before Hello.   

以上所有情况下,"Hello"字符串使用的字段宽度不适用于"World!"字符串,而是正常打印。

输出

Hello    World!
    HelloWorld!
    HelloWorld!

答案 1 :(得分:0)

-签名用于左对齐指定字段内输出的格式说明符 在%-9s中,9是字段宽度-,它告诉编译器左对齐输出。

答案 2 :(得分:0)

%9s这意味着如果要显示的字符串长度小于9,则显示字符串并用空格填充它,直到长度达到9个字符