本文目录一览:
C语言里哭脸的ASC码是什么?还有笑脸
首先我们知道 printf("\1"); 的作用是打印出ASCII码为1的字符。
查询ASCII码表中,十进制的1对应的ASCII意思是soh,即start of head,标题开头的意思。
该符号为通信专用字符,如果只是用作显示,系统会使用一个特定的图形来显示,这就是我们看到的笑脸。
如何用c语言编写一个程序,输出一张笑脸?
先在程序定义一个在屏幕中运动的点的结构:
struct
move_point
{
int
x,
y;/*该点的位置,包括x坐标和y坐标*/
int
xv,
yv;/*该点在x轴、y轴的速度*/
};
运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段距离,再画出该物体让我们看到以下代码:
gotoxy(man.x,
man.y);/*把光标移到指定的坐标*/
printf(““);/*输出一个空格,把先前的字符擦去*/
然后我们让物体按其速度运动:
man.x
+=
man.xv;/*水平方向按x轴的速度运动*/
man.y
+=
man.yv;/*垂直方向按y轴的速度运动*/
运动后还要判断物体是否出界,如果出了界,就令物体反弹,即让它下一刻的速度等于现在的速度的相反数最后打印出这个笑脸:
gotoxy(man.x,
man.y);
printf(“%c\b”,
2);
/*输出ascii码值为2的“笑脸”字符*/
C语言问题,为什么输出全是笑脸
运算符的优先级没有弄清楚
逻辑运算符的优先级比赋值运算符的优先级要高!
所以你的while是先判断getchar!='\n' 这个只要成立就为1
所以赋值的时候总是将1赋值给你的数组里了
而输出的时候ASCII为1的字符就是你看到的那个笑脸!
改:
#includestdio.h
main()
{ char a[80];
int n=0;
while(a[n]=getchar()!='\n') //该成while((a[n]=getchar())!='\n')
n++;
a[n]='\0';
n=n-1;
for(;n=0;--n)
putchar(a[n]);
}