‘壹’ 怎么用c语言输出矩形框,我用|和_输出有间隔
基本没什么办法,如果是在windows的dos控制台窗口运行显示可以用中文的制表符。
另外还有一个办法就是图形模式画出来,太麻烦。
‘贰’ C语言程序边框
首先要画框你必须得有graphice.h这个头文件{ initgraph(400,400);//画一个400行400列的图void rectangle( int left, int top, int right, int bottom);//画空心矩形。
getch();closegraph();}
‘叁’ 新手如何再C语言中输出边框
首先要画框你必须得有graphice.h这个头文件{ initgraph(400,400);//画一个400行400列的图void
‘肆’ C语言输入坐标输出一个带边框的三角形
#include<stdio.h>
#include<math.h>
intPinAB(doublex0,doubley0,doublex1,doubley1,doublex2,doubley2)
{
doubleKb,Kc;
Kb=x0*y1-x1*y0;
Kc=x0*y2-x2*y0;
if(((0>Kb)&&(0<Kc))||((0<Kb)&&(0>Kc)))
return1;
else
return0;
}
intPinABC(doublex0,doubley0,doublex1,doubley1,doublex2,doubley2,doublex3,doubley3)
{
if((PinAB((x0-x1),(y0-y1),(x2-x1),(y2-y1),(x3-x1),(y3-y1))==1)&&
(PinAB((x0-x2),(y0-y2),(x3-x2),(y3-y2),(x1-x2),(y1-y2))==1)&&
(PinAB((x0-x3),(y0-y3),(x2-x3),(y2-y3),(x1-x3),(y1-y3))==1))
return1;
else
return0;
}
voidmain()
{
floatx0,y0,x1,y1,x2,y2,x3,y3,xmin,xmax,ymin,ymax,k,t;
intm,n,i,j;
printf("依次输入x1、y1、x2、y2、x3、y3坐标构成三角形:");
scanf_s("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
printf(" 输入行数和列数:");
scanf_s("%d%d",&m,&n);
printf(" 输入左下角坐标xmin,ymin:");
scanf_s("%f%f",&xmin,&ymin);
printf(" 输入右上角坐标xmax,ymax:");
scanf_s("%f%f",&xmax,&ymax);
k=(xmax-xmin)/n;
t=(ymax-ymin)/m;
for(j=0;j<=m+1;j++)
{
for(i=0;i<=n+1;i++)
{
x0=(i-1)*k+xmin;
y0=(m-j)*t+ymin;
if(((i==0)&&(j==0))||((i==n+1)&&(j==0))||((i==0)&&(j==m+1))||((i==n+1)&&(j==m+1)))
printf("+");
elseif((j==0)||(j==m+1))
printf("-");
elseif((i==0)||(i==n+1))
printf("|");
elseif(PinABC(x0,y0,x1,y1,x2,y2,x3,y3)==1)
printf("*");
else
printf("");
}
printf(" ");
}
}
我的代码如上。由于我的编译器是按行输出,不知道怎么弄成你给的图那种每行不对齐的形式,所以可能编译结果和你给的图有一点点区别,你自己有时间的话看看怎么改。最后结果如下图:
还有就是(0.95,1.1)这个点应该是在框外的,你给的图有一点问题。
‘伍’ 有大学课堂c语言编程时左边框怎么打出,打不出可判断正误但限示未保存程序无法运行
你用TC还是什么编程环境?左边框是“{”?真不行就拷贝一个上去,呵呵。祝你好运
‘陆’ 在C语言里面做登录时,如何显示成输入框的形式
您好!光标的控制可以通过SetConsoleCursorPosition来处理。
画矩形框的话需要用到GDI的函数。如果是用默认的console窗口的话应该没法处理WM_PAINT消息,也就是说只要窗口大小变化了,一开始画的东西就都没了,最好创建一个自己的窗口。
下面是一个简单的示例(把一些改变大小的菜单都移除掉了):
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
void main()
{
HWND hwnd = GetConsoleWindow();
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO sScreenInfo;
CONSOLE_FONT_INFO sFontInfo;
COORD posStart, posNow, font;
HDC dc = GetDC(hwnd);
RECT rect;
HBRUSH brush = CreateSolidBrush(RGB(0,0,255));
char name[20], pwd[20], ch;
char szWelcome[64] = "Welcome - ";
int i;
// 初始化
DeleteMenu(GetSystemMenu(hwnd, FALSE), SC_SIZE, MF_BYCOMMAND);
DeleteMenu(GetSystemMenu(hwnd, FALSE), SC_MINIMIZE, MF_BYCOMMAND);
DeleteMenu(GetSystemMenu(hwnd, FALSE), SC_MAXIMIZE, MF_BYCOMMAND);
DrawMenuBar(hwnd);
system("cls");
SetConsoleTitle("Login");
GetConsoleScreenBufferInfo(hOut, &sScreenInfo);
posStart.X = (sScreenInfo.srWindow.Right - sScreenInfo.srWindow.Left) / 2 - 10;
posStart.Y = (sScreenInfo.srWindow.Bottom - sScreenInfo.srWindow.Top) / 2 - 1;
GetCurrentConsoleFont(hOut, FALSE, &sFontInfo);
font = GetConsoleFontSize(hOut, sFontInfo.nFont);
// 输出“账号”
SetConsoleTextAttribute(hOut, FOREGROUND_INTENSITY);
posNow.X = posStart.X;
posNow.Y = posStart.Y;
SetConsoleCursorPosition(hOut, posNow);
printf("账号:");
// 画蓝色边框
rect.left = (posNow.X+5)*font.X;
rect.top = (posNow.Y - 1)*font.Y;
rect.right = rect.left + 20*font.X;
rect.bottom = rect.top + 3*font.Y;
FrameRect(dc, &rect, brush);
// 输出“密码”
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE);
posNow.X = posStart.X;
posNow.Y = posStart.Y + 4;
SetConsoleCursorPosition(hOut, posNow);
printf("密码:\n");
// 画蓝色边框
rect.left = (posNow.X+5)*font.X;
rect.top = (posNow.Y - 1)*font.Y;
rect.right = rect.left + 20*font.X;
rect.bottom = rect.top + 3*font.Y;
FrameRect(dc, &rect, brush);
// 清除DC
DeleteObject(brush);
ReleaseDC(hwnd, dc);
// 输入账号
SetConsoleTextAttribute(hOut, FOREGROUND_INTENSITY);
posNow.X = posStart.X + 6;
posNow.Y = posStart.Y;
SetConsoleCursorPosition(hOut, posNow);
scanf("%s", name);
// 输入密码
posNow.X = posStart.X + 6;
posNow.Y = posStart.Y + 4;
SetConsoleCursorPosition(hOut, posNow);
i = 0;
while ((ch = getch()) != 13)
{
printf("*");
pwd[i++] = ch;
}
// 欢迎信息
system("cls");
strcat(szWelcome, name);
SetConsoleTitle(szWelcome);
SetConsoleTextAttribute(hOut, FOREGROUND_RED);
SetConsoleCursorPosition(hOut, posStart);
printf("***********************\n");
posStart.Y += 1;
SetConsoleCursorPosition(hOut, posStart);
printf("**** WELCOME ****\n");
posStart.Y += 1;
SetConsoleCursorPosition(hOut, posStart);
printf("***********************\n");
while ((ch = getch()) != 13){}
}
‘柒’ C语言中的颜色和边框的函数怎么来运用···
if(c=='-')
{
if(strcmp(str2,"")==0) /*如果str2为空,说明是负号,而不是减号*/
flag=-1; /*设置负数标志*/
else
{
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,""); /*将str2清空*/
act=2; /*做计算减法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,"0."); /*显示字符串*/
}
}
if(c=='*')
{
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,""); /*将str2清空*/
act=3; /*做计算乘法标志值*/
setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,"0."); /*显示字符串*/
}
if(c=='/')
{
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,""); /*将str2清空*/
act=4; /*做计算除法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,"0."); /*显示字符串*/
}
if(c=='^')
{
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,""); /*将str2清空*/
act=5; /*做计算乘方标志值*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,"0."); /*显示字符串*/
}
if(c=='%')
{
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,""); /*将str2清空*/
act=6; /*做计算模运算乘方标志值*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,"0."); /*显示字符串*/
}
if(c=='=')
{
num2=atof(str2); /*将第二个操作数转换为浮点数*/
switch(act) /*根据运算符号计算*/
{
case 1:result=num1+num2;break; /*做加法*/
case 2:result=num1-num2;break; /*做减法*/
case 3:result=num1*num2;break; /*做乘法*/
case 4:result=num1/num2;break; /*做除法*/
case 5:result=pow(num1,num2);break; /*做x的y次方*/
case 6:result=fmod(num1,num2);break; /*做模运算*/
}
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/
sprintf(temp,"%f",result); /*将结果保存到temp中*/
outtextxy(5*width,height,temp); /*显示结果*/
}
if(c=='c')
{
num1=0; /*将两个操作数复位0,符号标志为1*/
num2=0;
flag=1;
strcpy(str2,""); /*将str2清空*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/
outtextxy(5*width,height,"0."); /*显示字符串*/
}
if(c=='Q')exit(0); /*如果选择了q回车,结束计算程序*/
}
putimage(x,y,rar,XOR_PUT); /*在退出之前消去光标箭头*/
return; /*返回*/
}
/*窗口函数*/
void mwindow( char *header )
{
int height;
cleardevice(); /* 清除图形屏幕 */
setcolor( MaxColors - 1 ); /* 设置当前颜色为白色*/
setviewport( 20, 20, MaxX/2, MaxY/2, 1 ); /* 设置视口大小 */
height = textheight( "H" ); /* 读取基本文本大小 */
settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*设置文本样式*/
settextjustify( CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/
outtextxy( MaxX/4, 2, header ); /*输出标题*/
setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*设置视口大小*/
drawboder(); /*画边框*/
}
void drawboder(void) /*画边框*/
{
struct viewporttype vp; /*定义视口类型变量*/
setcolor( MaxColors - 1 ); /*设置当前颜色为白色 */
setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*设置画线方式*/
getviewsettings( &vp );/*将当前视口信息装入vp所指的结构中*/
rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*画矩形边框*/
}
/*设计鼠标图形函数*/
int arrow()
{
int size;
int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定义多边形坐标*/
setfillstyle(SOLID_FILL,2); /*设置填充模式*/
fillpoly(8,raw); /*画出一光标箭头*/
size=imagesize(4,4,16,16); /*测试图象大小*/
rar=malloc(size); /*分配内存区域*/
getimage(4,4,16,16,rar); /*存放光标箭头图象*/
putimage(4,4,rar,XOR_PUT); /*消去光标箭头图象*/
return 0;
}
/*按键函数*/
int specialkey(void)
{
int key;
while(bioskey(1)==0); /*等待键盘输入*/
key=bioskey(0); /*键盘输入*/
key=key&0xff? key&0xff:key>>8; /*只取特殊键的扫描值,其余为0*/
return(key); /*返回键值*/
}
‘捌’ c语言编码后有框框
这是因为C语言中,在需要用到16进制数据的时候,可以通过printf函数的%x格式打印数据的16进制形式。在某些位标记、位操作的场合,需要用到2进制格式的数据,但printf函数不能输出2进制格式,虽然可以通过使用itoa或_itoa的方法转为2进制的字符串打印,但显示的长度是不固定的,无法显示有效数位前面的0。首先弄清楚数据在计算机中是如何存储的,对于int型数字,在32或64位计算机中都占4个字节,而计算机中的数据存储是以字节(Byte)为单位,1个字节包含8个位(bit),16进制数是内存的地址,向上递增,方框里的二进制数是内存单元实际存储的字节内存,我们可以通过程序测试验证一下,因为unsignedchar或char类型在系统是占用一个字节,因此可以定义该变量的指针,分别指向int的4个字节,打印其内存地址和实际存储的内存进行验证。
‘玖’ 用C语言怎么做出这种表格边框
━
┃
┓
┗
┏
┛
用搜狗输入法,输入v9后就能看到这些特殊字符。
这些都是双字节字符,也就是和汉字一样。把它们当做字符串(不是字符而是字符串!)直接用printf打印他们就行。
如果嫌麻烦,也有更简单的方法:写8行puts
puts("┏━━━━━━━━┓");
puts("┃1.添加记录┃");
//...
puts("┃0.退出程序┃");
puts("┗━━━━━━━━┛");
‘拾’ C语言这个方框□怎么在电脑上打出来
就是两个中括号而已[]