我正在开发一个C项目,现在正在使用开源方法集成到我的代码中。在浏览代码时,我遇到了一个 printf 语句,如下所示:
printf("%-9s",someString);
我理解格式说明符%s ,但%9s 是什么?
我尝试寻找解决方案,但没有成功。任何帮助都会有用。
答案 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个字符