當前位置:首頁 » 編程語言 » c語言只能寫控制台的程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言只能寫控制台的程序

發布時間: 2022-08-03 03:42:41

❶ C新手:c語言只能編程出控制台程序嗎,我想弄一些漂亮頁面的程序怎麼辦

建立的工程種類不同,得到的應用程序效果不同。建立一個win32 application工程就能編寫有漂亮界面的程序。不過說實在的,漂亮的界面下面還是一些代碼功能實體,這些代碼和你編寫控制台程序時候差不多的。所以不要看控制台程序黑乎乎的窗口難看,關鍵要看寫代碼的水平。

❷ 是不是C語言只能編寫出控制台程序

c只是一種語言。c++也是一種語言。而寫窗口程序是通過調用一種叫API的東西,這個東西是通過你的調用來實現一些功能。只要你想,你完全可以用c的方式調用它。

❸ c語言在vs2010里只能寫控制台命令嗎,如何用vs2010寫C語言的窗體程序,

C語言本身不支持窗體程序 C語言想寫帶窗口的需要一些額外的庫的支持 你可以嘗試EGE圖形庫 如果不想使用這些 可以嘗試Windows API 也可以寫窗口

❹ c語言是不是只能寫控制台啊

我來給你解釋下吧:
C語言是很底層的東西。它能夠用來寫圖形化界面,但是需要使用單獨的圖形庫,因為關於圖形的部分不是C語言標准里的東西。
Windows環境下的話,用C寫圖形化界面就得使用微軟的Windows API。那個學起來很難,用起來也麻煩得很。微軟為了簡化圖形開發,為C++開發者提供了C++編寫的基於Windows API的類庫封裝--MFC(Microsoft Foundation Classes),為C提供了Windows SDK。MFC用起來還能簡化不少,SDK則是依然很復雜。想用C寫Windows系統下的圖形化界面,就得學《Windows程序設計》。
Linux環境下的話,就QT、GTK+之類的。

所以說,Windows環境下用C寫圖形化界面的想法還是放棄吧,太難,外面基本上也沒有哪個公司會做這樣的開發。C本來就不是用來干這個的,主要用於系統應用開發,做底層的。
C++就用MFC,不過也不怎麼好學,開發效率也不高。Java的話得學Swing、AWT,不過Java寫界面也是渣得很。
現在最主流的圖形界面開發都是用的C#。開發圖形界面太簡單了,特別是WPF。開發效率是當前最高的。你幾乎不用學編程就能做界面,界面和編程基本是分離的。(當然動態界面控制是必須要編程實現的)
學完C學C++吧,了解下面向對象編程,然後就學C#,做圖形界面就簡單了。當然你也可以直接跳過C++學C#,只是可能不好接受點。

另外,關於界面,這些界面都是API自己畫出來的,你只需要在代碼里調用就能產生,而不是要你自己去畫。在集成開發環境(比如Visual C++、Visual Studio)里拖拽控制項到界面上實際上也是集成開發環境在自動為你生成調用控制項的代碼。

❺ C語言編程題,編寫一控制台應用程序

#include<stdio.h>
void main() { int x;
scanf("%d",&x);
if ( x>=90 ) printf("優秀。\n");
else if ( x>=80 ) printf("良好。\n");
else if ( x>=70 ) printf("中等。\n");
else if ( x>=60 ) printf("合格。\n");
else printf("不合格。\n");

}

❻ c語言如何寫出一個圖形化的界面,難道只能是黑白的win32控制台程序么

控制台字元界面,只要是字元來進通信。win32
只要是用來開發主流windows程序的。一步一步來看:首先從函數介面:int
main(int
argc,
char
*argv[])單單的一個入口點,兩個參數就是,命令行參數。一個數組和一個整形。說實話讓我來說我也說不出來這個
int
main有什麼可講的。重點講一講這個winmainint
winapi
winmain(hinstance
hinstance,hinstance
hprevinstance,lpstr
lpcmdline,int
ncmdshow)在你創建win32程序的時候,入口點是這個:所以,系統在載入你的程序進入內存的時候cs:ip在完成程序初始化之後就會指向這個winmain
首地址。我看來看參數:
hinstance是windows
為每一個win32程序分配的實例化句柄(用來管理程序的一個標識符)hprevinstance前一個執行實體的執行實體句柄
lpcmdline
同樣,命令行ncmdshow
狀態。-----------------------簡而言之,一般的c編譯器默認都會用main
來作為程序入口,這個規范。但是windows為了方便程序的內存管理或者是圖形界面的管理。重新自定義了一個入口函數,當然編譯器肯定要重新編寫了,因為這個一個新的規范。參數即是為了管理程序的。基本上每一個windows程序都會有一個winmain
。以前寫過mrp的手機程序。int
tmain(int
x,int
y,int
flags)顯而易見,這個觸屏的坐標個觸發的事件。
我相信你已經懂了。如果你想研究win32參數具體作用,那麼推薦一本

❼ C語言編寫的怎麼都是命令控制台程序

1、控制台程序是基礎,有基礎了寫圖形界面的程序就很簡單了。學完C++了學windows編程、MFC什麼的,到時候就是圖形界面了。


2、圖形界面需要些SDK的知識,windows的實現中基本上都是用的C語言,其各種介面基本上都是原生C語言函數,具體比如SDK用的windows API。
使用純C語言編寫windows程序,工作量將會相當大,下面是一個小例子:

/*
*Thisisasimplewindowsprogram,itdoesnothingbutdrawanellipse.
*WindowsSDK,Win32API,PureC,(NotC++orMFC!!)
*Suxpertatgmaildotcom,2008/8/24
**/
#include<windows.h>
LONGWINAPIWndProc(HWND,UINT,WPARAM,LPARAM);
intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
LPSTRlpszCmdLine,intnCmdShow){
/*TheEntryforwindowsprogram,justlikemain()indos*/
WNDCLASSwc;
HWNDhwnd;
MSGmsg;
wc.style=0;//Classstyle
wc.lpfnWndProc=(WNDPROC)WndProc;//Windowprocereaddress
wc.cbClsExtra=0;//Classextrabytes
wc.cbWndExtra=0;//Windowextrabytes
wc.hInstance=hInstance;//Instancehandle
wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);//Iconhandle
wc.hCursor=LoadCursor(NULL,IDC_ARROW);//Cursorhandle
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//Backgroundcolor
wc.lpszMenuName=NULL;//Menuname
wc.lpszClassName="WinSDKtest";//WNDCLASSname
RegisterClass(&wc);
hwnd=CreateWindow(
"WinSDKtest",//WNDCLASSname
"SDKApplication",//Windowtitle
WS_OVERLAPPEDWINDOW,//Windowstyle
CW_USEDEFAULT,//Horizontalposition
CW_USEDEFAULT,//Verticalposition
CW_USEDEFAULT,//Initialwidth
CW_USEDEFAULT,//Initialheight
HWND_DESKTOP,//Handleofparentwindow
NULL,//Menuhandle
hInstance,//Application'sinstancehandle
NULL//Window-creationdata
);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,
LPARAMlParam)
{
/*...*/
PAINTSTRUCTps;
HDChdc;
switch(message){
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Ellipse(hdc,0,0,800,600);
//
EndPaint(hwnd,&ps);
break;//Someoneliketowritereturnhere.
caseWM_DESTROY:
PostQuitMessage(0);
break;
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
}
return0;
}


基本過程就是直接調用windows提供的API函數,完成從窗口創建,顯示等界面功能到深層的文件操作,注冊表等甚至windows內核調試等高級功能。

❽ C語言 控制台程序

不想調用控制台入口換winmain
底層的編譯,在編譯成目標文件之後,不要鏈接成可執行文件,生成別的
二進制文件
或者。。像
Linux內核
一樣,編譯成可執行文件,裝載入內存,然後用內存鏡像拷貝出純二進制文件。。等等方法
至於編譯驅動有另外更加專業的方法咯。。

❾ 用c語言編寫控制台下簡單的學籍管理程序

太長,剩下的聯系我,發給你!
/*11.3.2
源程序*/
/***********xuesheng.c***********/
/******頭文件(.h)***********/
#include
"stdio.h"
/*I/O函數*/
#include
"stdlib.h"
/*其它說明*/
#include
"string.h"
/*字元串函數*/
#include
"conio.h"
/*屏幕操作函數*/
#include
"mem.h"
/*內存操作函數*/
#include
"ctype.h"
/*字元操作函數*/
#include
"alloc.h"
/*動態地址分配函數*/
#define
N
3
/*定義常數*/
typedef
struct
z1
/*定義數據結構*/
{
char
no[11];
char
name[15];
int
score[N];
float
sum;
float
average;
int
order;
struct
z1
*next;
}STUDENT;
/*以下是函數原型*/
STUDENT
*init();
/*初始化函數*/
STUDENT
*create();
/*創建鏈表*/
STUDENT
*delete(STUDENT
*h);
/*刪除記錄*/
void
print(STUDENT
*h);
/*
顯示所有記錄*/
void
search(STUDENT
*h);
/*查找*/
void
save(STUDENT
*h);
/*保存*/
STUDENT
*load();
/*讀入記錄*/
void
computer(STUDENT
*h);
/*計算總分和均分*/
STUDENT
*insert(STUDENT
*h);
/*插入記錄*/
void
append();
/*追加記錄*/
void
();
/*復制文件*/
STUDENT
*sort(STUDENT
*h);
/*排序*/
STUDENT
*index(STUDENT
*h);
/*索引*/
void
total(STUDENT
*h);
/*分類合計*/
int
menu_select();
/*菜單函數*/
/******主函數開始*******/
main()
{
int
i;
STUDENT
*head;
/*鏈表定義頭指針*/
head=init();
/*初始化鏈表*/
clrscr();
/*清屏*/
for(;;)
/*無限循環*/
{
switch(menu_select())
/*調用主菜單函數,返回值整數作開關語句的條件*/
{
/*值不同,執行的函數不同,break
不能省略*/
case
0:head=init();break;
/*執行初始化*/
case
1:head=create();break;
/*創建鏈表*/
case
2:head=delete(head);break;
/*刪除記錄*/
case
3:print(head);break;
/*顯示全部記錄*/
case
4:search(head);break;
/*查找記錄*/
case
5:save(head);break;
/*保存文件*/
case
6:head=load();
break;
/*讀文件*/
case
7:computer(head);break;
/*計算總分和均分*/
case
8:head=insert(head);
break;
/*插入記錄*/
case
9:();break;
/*復制文件*/
case
10:head=sort(head);break;
/*排序*/
case
11:append();break;
/*追加記錄*/
case
12:head=index(head);break;
/*索引*/
case
13:total(head);break;
/*分類合計*/
case
14:exit(0);
/*如菜單返回值為14程序結束*/
}
}
}
/*菜單函數,返回值為整數*/
menu_select()
{
c