我想在屏幕上打印字母“A”。该字母应使用星号(*)构建。例如在控制台应用程序中。我们可以使用for循环在C中打印带'*'的'A'吗?
这可以使用for循环以简单的方式完成。
例如:
**
* *
* *
******
* *
* *
编辑:下面
答案是完全无关的OP,但非常吸引人,知识渊博,隽永
我想在屏幕上打印字母“A”。该字母应使用星号(*)构建。例如在控制台应用程序中。我们可以使用for循环在C中打印带'*'的'A'吗?
这可以使用for循环以简单的方式完成。
例如:
**
* *
* *
******
* *
* *
编辑:下面
答案是完全无关的OP,但非常吸引人,知识渊博,隽永
这样做的另一种可能的方式是写你所期望的打印它在这样一个文本文件中的字母:
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是相同的。
我不t知道它是否是你想要的,但你可以创建一个二维数组并使用嵌套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();
}
会打印:
* * * * * ***** * * * * * *
我想你的意思Console.Write(asciiArtA [i] [j]); –
一种可能的方式,虽然一些工作,也许不适合一个人刚开始瘦C#是以下方法:
取您要打印并生成的信件以及其图像。字母可以是彩色的,但最好只是黑色和白色。
例如:
装入图像(图像&位图类型)
转换它为灰度
循环遍历每个像素并确定您是否处理使用白色或黑色(或其他非白色)像素。这是你的for循环。
根据像素的颜色打印符号(空格,* ...等)。
这与CodeProject上用于生成ASCII艺术的以下方法类似。
http://www.codeproject.com/KB/web-image/ascii_art_with_c_.aspx
忽略诸如figlet使用通过的PInvoke另一个库的“for循环”的想法,你可以打印/渲染ASCII文本。
在http://asciiset.com/figletserver.html看到它在行动。以下产生使用courb字体
## ## ## ##
## # # # # # # #
# # ### # # ## # # # ## #### # ###
### #### # # ## # # # # ## # # # # ## #
# # ## # # ## # # # # ## # # # ## #
## # ### ### ### ## # # ## ### ### ####
问题在哪里? –
yyyyyyy what ??? –
我认为他想知道如何自动生成在屏幕上(控制台应用程序)字母“A”,包括了一堆*****符号组成。类似于ASCII艺术的东西。 –