编辑:这是重复的。
Set variable text column width in printf& The simplest way of printing a portion of a char[] in C
回答了我的问题
我想用C语言输出一个菜单,但我不能让它看起来不错。我有搜索功能在C中执行此操作,找不到任何?
一个网站使用C#和String.Format()
来实现这一点,我想知道这是否可以在C中做到?
> [C#] Console.WriteLine("-------------------------------");
> Console.WriteLine("First Name | Last Name | Age");
> Console.WriteLine("-------------------------------");
> Console.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Bill",
> "Gates", 51)); Console.WriteLine(String.Format("{0,-10} | {1,-10} |
> {2,5}", "Edna", "Parker", 114));
> Console.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Johnny",
> "Depp", 44)); Console.WriteLine("-------------------------------");
输出如下:
-------------------------------
First Name | Last Name | Age
-------------------------------
Bill | Gates | 51
Edna | Parker | 114
Johnny | Depp | 44
-------------------------------
在我自己的C中,我试图在之前和之后格式化一个字符串,空格或特殊字符,例如:
--------------------------------
------This x costs y dollar-----
------This i costs j dollar-----
...
...
-------------------------------
前面是项目名称的%s,后面的成本是%d
我的想法就是在循环中打印它,它循环m
(总项目)次数定义line
宽度总共30。每个循环找到项目名称的长度,使用另一个循环到/ 10的成本来找到它的len并将它们加在一起。
打印((line
- totalLen
)/ 2)在前面,打印字符串并在字符串后执行相同的操作?
如果整个字符串是奇数或偶数,那么小问题就是。