我正在开发一个 C 项目,现在使用开源方法集成到我的代码中。在浏览代码时,我遇到了这样的printf语句:
printf("%-9s",someString);
我了解格式说明符%s但什么是%9s?
我试图为此寻找解决方案,但没有成功。任何帮助都会很有用。
我正在开发一个 C 项目,现在使用开源方法集成到我的代码中。在浏览代码时,我遇到了这样的printf语句:
printf("%-9s",someString);
我了解格式说明符%s但什么是%9s?
我试图为此寻找解决方案,但没有成功。任何帮助都会很有用。
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!
%9s
这意味着如果您要显示的字符串的长度小于 9,则显示该字符串并用空格填充它,直到长度达到 9 个字符
-
登录用于左对齐指定字段内的输出的格式说明符。
In %-9s
,9
是字段宽度,-
在它告诉编译器左对齐输出之前。