[英]Cursor position in c#
我只是一個初學者,如果我的問題很愚蠢,請對不起。 我正在編寫程序,詢問矩形的大小(AxB)並將其繪制。 但是我還需要詢問矩形的位置(X,Y)。 有什么方法可以在c#控制台應用程序中設置一個比僅在矩形的上部工作更長的光標位置? 還是簡單的事情就能實現? 這是代碼的一部分:
int a;
int b;
int x;
int y;
Console.WriteLine("A");
a = int.Parse(Console.ReadLine());
Console.WriteLine("B");
b = int.Parse(Console.ReadLine());
Console.WriteLine("X");
x = int.Parse(Console.ReadLine());
Console.WriteLine("Y");
y = int.Parse(Console.ReadLine());
Console.Clear();
Console.SetCursorPosition(x, y);
for (int i = 0; i < a; i++)
Console.Write("*");
Console.Write("\n");
for (int i = 0; i < b - 2; i++)
{
Console.Write("*");
for (int k = 0; k < a - 2; k++)
Console.Write(" ");
Console.Write("*");
Console.Write("\n");
}
for (int i = 0; i < a; i++)
Console.Write("*");
Console.Write("\n");
到目前為止,這不是最有效或最優雅的解決方案,但它將滿足您的需求:
int a;
int b;
int x;
int y;
Console.WriteLine("A");
a = int.Parse(Console.ReadLine());
Console.WriteLine("B");
b = int.Parse(Console.ReadLine());
Console.WriteLine("X");
x = int.Parse(Console.ReadLine());
Console.WriteLine("Y");
y = int.Parse(Console.ReadLine());
Console.Clear();
Console.SetCursorPosition(x, y);
for (int i = 0; i < y; i++) //this for will print all the "y" line breaks before your picture prints
{
Console.Write("\n");
}
for (int j = 0; j < x; j++)
{
Console.Write(" ");
}
for (int i = 0; i < a; i++)
Console.Write("*");
Console.Write("\n");
for (int i = 0; i < b - 2; i++)
{
for (int j = 0; j < x; j++) //This for will print x spaces before each line
{
Console.Write(" ");
}
Console.Write("*");
for (int k = 0; k < a - 2; k++)
Console.Write(" ");
Console.Write("*");
Console.Write("\n");
}
for (int j = 0; j < x; j++)
{
Console.Write(" ");
}
for (int i = 0; i < a; i++)
Console.Write("*");
Console.Write("\n");
Console.ReadLine();
只需在正確的位置打印一些額外的換行符和空格
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.