一个问题求助
这里有1,2,3,4四句话,其中1,2,3已经显示出来了,现在想把3删掉替换为4,而且1和2完全没变化,怎么做啊?#include <stdio.h>
void s_face();
void c_face();
int main()
{
s_face();
c_face();
getchar();
}
void s_face()
{
char s_face = { "■ ■","■ ■","■■ ■■","■■■□□□□□□□□■■■",\
"■□□□□□□□□□□□□■","□□□□□□□□□□□□□□","□□ □□","□□■■■ ■■■□□",\
"□□■■□ □■■□□","□□■■■ ■■■□□","□ □","□□□ □□□"};
int i, j;
for (i = 0; i < 12; i++)
{
for (j = 0; j < 29; j++)
{
;''
printf("%c", s_face);
}
printf("\n");
}
}
void c_face()
{
char c1_face = { "□□ ■■■ □□" };
char c2_face = { "□□ ■ □□" };
char x_face = { "□□□□□□□□□□□□" };
int i = 1;
while (1)
{
if (i == 1)
{
printf("%s\n", c1_face);
printf("%s", x_face);
i++;
system("cls");
}
else
{
printf("%s\n", c2_face);
printf("%s", x_face);
i = 1;
system("cls");
}
}
}
上面这个是想显示出一个小脑袋,然后嘴动,但是因为学识有限,不知道怎么处理了。
正常应该是↓这个
■ ■
■ ■
■■ ■■
■■■□□□□□□□□■■■
■□□□□□□□□□□□□■
□□□□□□□□□□□□□□
□□ □□
□□■■■ ■■■□□
□□■■□ □■■□□
□□■■■ ■■■□□
□ □
□□□ □□□
□□ ■■■ □□
□□□□□□□□□□□
三千芳华 发表于 2018-9-22 20:09
这个是再次打开时不知道怎么就这样了,不是这的问题,这个删除掉,下面c_face最后加上system("cls")才是 ...
#include <stdio.h>
#include <stdlib.h>
void s_face(void)
{
char *data[] =
{
"■ ■",
"■ ■",
"■■ ■■",
"■■■□□□□□□□□■■■",
"■□□□□□□□□□□□□■",
"□□□□□□□□□□□□□□",
"□□ □□",
"□□■■■ ■■■□□",
"□□■■□ □■■□□",
"□□■■■ ■■■□□",
"□ □",
"□□□ □□□",
NULL
};
for(int i = 0; data; ++i)
{
puts(data);
}
}
void c_face(void)
{
char c1[] = {"□□ ■■■ □□"};
char c2[] = {"□□ ■ □□"};
char x[] = {"□□□□□□□□□□□□"};
int flag = 0;
while(1)
{
system("cls");
s_face();
flag = !flag;
if(flag)
{
puts(c1);
puts(x);
}
else
{
puts(c2);
puts(x);
}
}
}
int main(void)
{
c_face();
return 0;
}
人造人 发表于 2018-9-22 19:46
这个是再次打开时不知道怎么就这样了,不是这的问题,这个删除掉,下面c_face最后加上system("cls")才是,虽然直接清屏是能做到变脸,但不清s_face,而做到变脸这个我没搞出来。 人造人 发表于 2018-9-22 20:11
厉害了,我的人造人大佬,{:10_257:}太厉害了(大拇指) #include <stdio.h>
#include <stdlib.h>
#include <windows.h>
static void GotoXY(int x, int y)
{
COORD position = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), position);
}
static void HideCursor()
{
CONSOLE_CURSOR_INFO cci;
cci.bVisible = FALSE;
cci.dwSize = sizeof(cci);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cci);
}
void s_face(void)
{
char *data[] =
{
"■ ■",
"■ ■",
"■■ ■■",
"■■■□□□□□□□□■■■",
"■□□□□□□□□□□□□■",
"□□□□□□□□□□□□□□",
"□□ □□",
"□□■■■ ■■■□□",
"□□■■□ □■■□□",
"□□■■■ ■■■□□",
"□ □",
"□□□ □□□",
NULL
};
for(int i = 0; data; ++i)
{
puts(data);
}
}
void c_face(void)
{
char c1[] = {"□□ ■■■ □□"};
char c2[] = {"□□ ■ □□"};
char x[] = {"□□□□□□□□□□□□"};
int flag = 0;
while(1)
{
GotoXY(0, 12);
flag = !flag;
if(flag)
{
puts(c1);
puts(x);
}
else
{
puts(c2);
puts(x);
}
Sleep(500);
}
}
int main(void)
{
HideCursor();
s_face();
c_face();
return 0;
}
void c_face(void)
{
char c1[] = {"□□ ■■■ □□"};
char c2[] = {"□□ ■ □□"};
char x[] = {"□□□□□□□□□□□□"};
int flag = 0;
while(1)
{
GotoXY(0, 12);
flag = !flag;
if(flag)
puts(c1);
else
puts(c2);
puts(x);
Sleep(500);
}
} 人造人 发表于 2018-9-22 20:27
请教一下,那个NULL的意义和作用还有flag=!flag这个的意思,这两处没看懂 char *data[] =
{
"■ ■",
"■ ■",
"■■ ■■",
"■■■□□□□□□□□■■■",
"■□□□□□□□□□□□□■",
"□□□□□□□□□□□□□□",
"□□ □□",
"□□■■■ ■■■□□",
"□□■■□ □■■□□",
"□□■■■ ■■■□□",
"□ □",
"□□□ □□□",
NULL
};
data是一个数组,数组里面的元素是指针,指向char类型的指针
data最后一个指针是NULL,标志着结束
三千芳华 发表于 2018-9-22 20:34
请教一下,那个NULL的意义和作用还有flag=!flag这个的意思,这两处没看懂
感叹号是逻辑取反
人造人 发表于 2018-9-22 20:38
data是一个数组,数组里面的元素是指针,指向char类型的指针
data最后一个指针是NULL,标志着结束
想明白了{:10_256:} 人造人 发表于 2018-9-22 20:39
感叹号是逻辑取反
第一次看到这个符号,一直当他是!=了{:10_266:}
这个操作符的意思就是0变1再赋值,第二遍是1变0再赋值吧? 三千芳华 发表于 2018-9-22 20:53
第一次看到这个符号,一直当他是!=了
这个操作符的意思就是0变1再赋值,第二遍是1变0再赋值吧 ...
嗯
页:
[1]