C# 在文本文件中编写一个表结构,然后通过C进行打印
我想在一个文本文件中编写一个有三行四列的表,并打印结构C# 在文本文件中编写一个表结构,然后通过C进行打印,c#,C#,我想在一个文本文件中编写一个有三行四列的表,并打印结构 我如何在C语言中实现同样的功能?虽然我认为其他许多评论者对这个问题的看法是正确的,但我认为这仍然值得尝试回答 因此,在MySQL中,当您从命令行转储行时,它会使用我一直喜欢的ASCII文本创建一个可视表。看起来像这样 +-------+-------+-------+-------+ | Col 1 | col 2 | Col 3 | Col 4 | +-------+-------+-------+-------+ | 1
我如何在C语言中实现同样的功能?虽然我认为其他许多评论者对这个问题的看法是正确的,但我认为这仍然值得尝试回答 因此,在MySQL中,当您从命令行转储行时,它会使用我一直喜欢的ASCII文本创建一个可视表。看起来像这样
+-------+-------+-------+-------+
| Col 1 | col 2 | Col 3 | Col 4 |
+-------+-------+-------+-------+
| 1 | 2 | red | dog |
+-------+-------+-------+-------+
| 1 | 4 | blue | cat |
+-------+-------+-------+-------+
| 2 | 9 | red | bird |
+-------+-------+-------+-------+
现在,其他的注释是正确的,我们确实需要学习自己解决问题,所以我也将为您指出创建表的正确方向,但不给出实际代码
要构建表格,您需要使用StringBuilder类根据表格值创建字符串,确保间距始终正确。此外,当您输出它时,如果它不是单间距字体中的纯文本,则表结构将看起来不正确
假设表是指ADO.NET数据表,我会这样做
var maxLength = 0;
foreach(DataColumn c in table.Columns)
{
//if the length of the column name is greater than the current max length
//update the max length
maxLength = maxLength < c.Name.Length ? c.Name.Length : maxLength;
}
//add some padding
maxLength = maxLength + 2;
var sb = new StringBuilder();
//create the top row
foreach(DataColumn c in table.Columns)
{
sb.AppendFormat("+{0}+", new String('-',maxLength));
}
sb.AppendLine();
//create the column names
foreach(DataColumn c in Table.Columns)
{
sb.AppendFormat("|{0}|", c.Name.PadLeft('0', maxLength));
}
sb.AppendLine();
//create the bottom of the column headers same as the top
foreach(DataColumn c in table.Columns)
{
sb.AppendFormat("+{0}+", new String('-',maxLength));
}
sb.AppendLine();
这都是我脑子里想不出来的,所以我肯定我可能有一个打字错误或是一个小小的逻辑错误。但是,仔细研究一下代码,了解它在做什么,你就会有必要的工具来解决你的问题 这个问题应该说明你们面临的具体问题。您应该提供您的代码,解释您想要的预期结果,显示您现在拥有的实际结果或错误。请将此“请做好我的工作”文本升级为真实问题。我对C非常陌生。我不知道该如何继续?很抱歉超出了此社区的目的。非常感谢。这些信息足以解决我的问题。