Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
/t不在C#控制台中工作_C#_Visual Studio_Console Application - Fatal编程技术网

/t不在C#控制台中工作

/t不在C#控制台中工作,c#,visual-studio,console-application,C#,Visual Studio,Console Application,当我将\t放入控制台时,writelin()不起作用 if (reader.HasRows) { Console.WriteLine("|{0}|\t|{1}|\t|{2}|\t|{3}|\t|{4}|", reader.GetName(0), reader.GetName(1), reader.GetName(2), reader.GetName(3), reader.GetName(4));

当我将\t放入
控制台时,writelin()
不起作用

 if (reader.HasRows)
        {
            Console.WriteLine("|{0}|\t|{1}|\t|{2}|\t|{3}|\t|{4}|", reader.GetName(0),
                    reader.GetName(1), reader.GetName(2), reader.GetName(3), reader.GetName(4));

            while (reader.Read())
            {

                Console.WriteLine("|{0}|\t|{1}|\t|{2} EGP|\t|{3} EGP|\t|{4}|", reader.GetString(0),
                    reader.GetInt32(1), reader.GetInt32(2), reader.GetInt32(3), reader.GetString(4));
            }
        }
结果是:

    |Product Name|  |Quantity|      |price per item |       |Total| |Code|
|a|     |1|     |0 EGP| |1 EGP| |12|
甚至当我使用
{0,10}
{0,-10}
时,它也不起作用


谢谢。

\t在这里真的很管用。但你在期待别的东西。如果您能提及您期望的输出类型。这很容易帮上忙

编辑:下面的代码将按照预期创建表的标题。调整{}内的第二个数字以适合您的列宽

Console.WriteLine(string.Format("|{0,-20}|{1,-20}|{2,-20}|{3,-20}|{4,-20}|", "Product Name", "Quantity", "Price per item", "Total", "Code"));

\我在这里真的不工作。但你在期待别的东西。如果您能提及您期望的输出类型。这很容易帮上忙

编辑:下面的代码将按照预期创建表的标题。调整{}内的第二个数字以适合您的列宽

Console.WriteLine(string.Format("|{0,-20}|{1,-20}|{2,-20}|{3,-20}|{4,-20}|", "Product Name", "Quantity", "Price per item", "Total", "Code"));
是的,这是工作。 您应该将选项卡想象为列标记。因此,当您放置\t时,您是在对控制台说:跳转到下一个可用列标记。在标题中,“Product Name”已将第一个选项卡列改为红色,因此当Console process\t时,它会跳到第二列。相反,在数据中,“a”的值很小,可以跳到第1列

这将以正确的格式输出:

    Console.WriteLine(string.Format("|{0,-15}|", "Product Name"));
    Console.WriteLine(string.Format("|{0,-15}|", "a"));
你可以看到它在

是的,它在工作。 您应该将选项卡想象为列标记。因此,当您放置\t时,您是在对控制台说:跳转到下一个可用列标记。在标题中,“Product Name”已将第一个选项卡列改为红色,因此当Console process\t时,它会跳到第二列。相反,在数据中,“a”的值很小,可以跳到第1列

这将以正确的格式输出:

    Console.WriteLine(string.Format("|{0,-15}|", "Product Name"));
    Console.WriteLine(string.Format("|{0,-15}|", "a"));
您可以看到它在

Q下工作
\t
的作用是什么

A. 它将光标移动到下一列,该列是8的倍数

这正是您的示例中发生的情况。也许不是你想要的,但肯定是你想要的

Q
\t
的作用是什么

A. 它将光标移动到下一列,该列是8的倍数


这正是您的示例中发生的情况。也许不是你想要的,但肯定是你想要的

如果您知道列的长度,一个权宜之计是使用
string.PadRight
。但它很混乱:

Console.WriteLine("{0}{1}{2}{3}{4}",
    ("|" + reader.GetString(0) + "|").PadRight(20, ' '),
    ("|" + reader.GetInt32(1) + "|").PadRight(20, ' ')
    ("|" + reader.GetInt32(2) + "EGP|").PadRight(20, ' ')
    ("|" + reader.GetInt32(3) + "EGP|").PadRight(20, ' ')
    ("|" + reader.GetString(4) + "|").PadRight(20, ' '));
虽然把它放进一个单独的方法是很简单的

如果您确实想使用
\t
,那么您可以编写一个单独的方法来计算要添加的选项卡数量。同样,您需要知道每个字段的长度:

string ToTabColumn(string text, int length)
{
    int tabSize = 8; // no easy way of getting environment tab length
    int colSize = text.Length + Convert.ToInt32(Math.Ceil((double)(length - text.Length) / tabSize));

    return text.PadRight(colSize, '\t');
}

如果您知道列的长度,一个权宜之计是使用
string.PadRight
。但它很混乱:

Console.WriteLine("{0}{1}{2}{3}{4}",
    ("|" + reader.GetString(0) + "|").PadRight(20, ' '),
    ("|" + reader.GetInt32(1) + "|").PadRight(20, ' ')
    ("|" + reader.GetInt32(2) + "EGP|").PadRight(20, ' ')
    ("|" + reader.GetInt32(3) + "EGP|").PadRight(20, ' ')
    ("|" + reader.GetString(4) + "|").PadRight(20, ' '));
虽然把它放进一个单独的方法是很简单的

如果您确实想使用
\t
,那么您可以编写一个单独的方法来计算要添加的选项卡数量。同样,您需要知道每个字段的长度:

string ToTabColumn(string text, int length)
{
    int tabSize = 8; // no easy way of getting environment tab length
    int colSize = text.Length + Convert.ToInt32(Math.Ceil((double)(length - text.Length) / tabSize));

    return text.PadRight(colSize, '\t');
}

你应该看一看字符串填充而不是制表法。看起来它在工作,它可能没有做你想做的事情,但是\t字符不是“我想做什么就做什么”——字符它是如何工作的,但是“| Total | | Code |”之间的空间不等于“|数量| |每项价格|”你期望什么输出?它起作用了,让那家伙休息一下!很明显他在问什么。如果您认为可以更好地表达它,那么您可以通过编辑问题来提供帮助。您应该查看字符串填充,而不是制表。看起来它正在工作,它可能没有做您想做的事情,但是\t字符不是“只做我想做的事”\t字符如何工作,而是“| Total | | Code |”之间的空格不等于“|数量| |每项价格|“您期望的输出是什么?它起作用了,让那家伙休息一下!很明显他在问什么。如果你认为它可以表达得更好,那么你可以通过编辑问题来提供帮助。我需要制作一个表格来显示输出,我需要使空间相等。我需要制作一个表格来显示输出,我需要使空间相等