『壹』 怎麼用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語言這個方框□怎麼在電腦上打出來
就是兩個中括弧而已[]