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非常陌生。我不知道该如何继续?很抱歉超出了此社区的目的。非常感谢。这些信息足以解决我的问题。