3

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

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

我了解格式说明符%s但什么是%9s

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

4

3 回答 3

12
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!
于 2013-10-08T13:11:29.487 回答
0

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

于 2013-10-08T13:12:09.973 回答
0

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

于 2013-10-08T13:11:22.040 回答