C# 我们可以在C中使用for循环打印带“*”的“A”吗
我想在屏幕上打印这封信。字母应使用星号*构建。例如,在控制台应用程序中 这可以通过使用for循环的简单方式实现 例如:C# 我们可以在C中使用for循环打印带“*”的“A”吗,c#,C#,我想在屏幕上打印这封信。字母应使用星号*构建。例如,在控制台应用程序中 这可以通过使用for循环的简单方式实现 例如: ** * * * * ****** * * * * 编辑: 下面的答案与OP完全无关,但非常有趣、知识丰富且有意义我不知道这是否是您想要的,但您可以创建一个2D数组,并使用嵌套for循环打印其内容: var asciiArtA = new [,] { {' ', ' ', '*
**
* *
* *
******
* *
* *
编辑:
下面的答案与OP完全无关,但非常有趣、知识丰富且有意义我不知道这是否是您想要的,但您可以创建一个2D数组,并使用嵌套for循环打印其内容:
var asciiArtA = new [,]
{
{' ', ' ', '*', ' ', ' '},
{' ', '*', ' ', '*', ' '},
{' ', '*', ' ', '*', ' '},
{'*', '*', '*', '*', '*'},
{'*', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', '*'},
{'*', ' ', ' ', ' ', '*'}
};
for (int i = 0; i < asciiArtA.GetLength(0); ++i)
{
for (int j = 0; j < asciiArtA.GetLength(1); ++j)
{
Console.Write(asciiArtA[i,j]);
}
Console.WriteLine();
}
将打印:
*
* *
* *
*****
* *
* *
* *
一种可能的方法是以下方法,尽管需要做一些工作,但可能不适合刚开始学习C的人: 拿着你想要打印的信,生成它的图像。字母可以是彩色的,但最好是黑白的 例如:
**
* *
* *
******
* *
* *
加载图像和位图类型
将其转换为灰度
循环遍历每个像素,确定您处理的是白色、黑色还是其他非白色像素。这是你的for循环
打印出符号空格、*…等。取决于像素的颜色
这类似于CodeProject上生成ASCII art的以下方法
另一种可能的方法是按照您希望的方式将信函打印在文本文件中,如下所示:
001100
100001
100001
111111
100001
100001
将其保存在a.txt文件中。然后,执行一个函数,通过迭代在相应的字母文件中定义的模式来打印它
public void PrintChar(char charToPrint)
{
string filename = string.Format("{0}.txt", charToPrint);
using (StreamReader reader = new StreamReader(filename))
{
string line;
while ((line = reader.ReadLine()) != null)
{
foreach (char c in line.ToCharArray())
{
Console.Write(c == '1' ? '*' : ' ');
}
Console.WriteLine();
}
}
}
此解决方案一点也不灵活,但如果您只想打印字母表中的几个字母,它的效果非常好:
编辑:更好的方法是以ASCII码命名文件,这样您也可以打印小写字符。Windows文件系统认为A.txt和A.txt是相同的。忽略“for循环”的概念,您可以通过PInvoke(例如)使用另一个库打印/呈现ascii文本 看看它在行动。以下是使用courb字体生成的
我想他想知道如何在屏幕上自动生成一个由一堆****符号组成的字母A控制台应用程序。类似于ASCII艺术的东西。@Christophe:是的,这就是我想要的,我知道这不是必要的,但这可以用一个简单的for-loop来完成吗?顺便问一句,为什么是反对票,请explain@Pankaj当前位置我认为这个问题很不清楚。在我得到你想要的东西之前我必须盯着它看一会儿也许那只是我。我已经提交了一个编辑请求。我不明白。标题读起来尽可能清楚。但是有些人没有考虑一下,在不理解这篇文章的情况下投了反对票。我想你指的是安慰;