標籤:

我用的是visual studio 2010 c語言為什麼學了好長時間還是控制台程序和dos窗口啊?


那是因為你一直以來寫的就是控制台程序啊。

VS + C 語言,也可以寫出有界面的程序。

例如:

教程在這裡:

手把手教你: 從零開發一款遊戲小項目


你放心學基本語法,演算法數據結構,還沒有界面也不著急。

其實這個東西概念很清晰,圖形界面是啥?Graphical interface,那interface是啥?介面。

所以你所謂的界面也就是介面的一種,你寫的dos界面程序也是介面的一種,可能比較接近command line interface。

所以其實你目前距離有圖形界面的程序並不遙遠,只要換個工具,換套程序庫就可以。

所以你為什麼還在寫黑框程序,因為是你選的。以前你不知道可以選,現在知道啦。

說點乾的,最簡單最容易看到圖形界面的程序,網頁。你可以看一看HTML、CSS基礎,學一學JavaScript,就能寫個好看(丑)的網頁了。

有人覺得網頁太簡單了,HTML CSS連編程語言都不算,學了C語言的沒必要看這些。那可以看看別的,比如MFC,QT,安卓開發,iOS開發,Electron等等,裡面有最新潮的,也有過氣很久的,找個感興趣的去玩玩你就能寫出有圖形的界面了,成就感會幫助你激發興趣。不要太在乎用什麼語言,稍微主流點的都可以去試試,不是你學了一學期C就不能去學C++,Java,Ruby,Python啥的,所謂的沉沒成本在這裡不存在的。學C會有助於你學別的語言,哪個程序員不得會好幾種語言呀!

於是你就會發現,這些東西本質上都是差不多的,還是要有編程基礎,要懂一些演算法,數據結構,以後可能要懂網路,操作系統,資料庫等等。最終離不開計算機專業的幾大專業課。

最後你還會發現,也許沒有圖形界面的程序開發起來才是最爽的(滑稽

Do IT, just do it!


你看搞後端的工作很久不還是沒有界面。所以有沒有圖形,界面顯示和你的進展沒有直接關係。但是前期學習,有一些可見的成果展示確實對成就感和自信有幫助。

要顯示圖形就要建立擁有圖形顯示類的工程,比如建立win32程序就顯示windows控制項,繪製一些簡單的2d圖形。建立mfc是對win32 api的進一步包裝,更快速開發出窗口的客戶端程序。但是這兩種現在在商業領域已經很少人做了,一般要限於cpp c語言,可能會用一些第三方的UI框架,比如QT

如果想顯示3d圖形,就要建立鏈接Directx opengl圖形庫的窗口程序。或者使用一些開源圖形引擎,遊戲引擎在包裝了它們之上進行進一步開發。

還有就是頁面前端技術的開發,這個是專註於瀏覽器頁面的展示。

這些都是客戶端,前端相關的技術,如果興趣在後端也並不一定要深入學習。


等你以後學有所成並進入某個行業的時候,就會懷念現在了。當然,也可能你學著學著就轉行了。。。

不過,看你問題,而又沒有具體描述,我大膽猜測一下。你應該不是正常上課學的吧,不然的話應該不會有這個問題。假如你是自學的話,那麼分為興趣和轉行。興趣的話我建議還是好好學下C和C++,不要因為沒有什麼花樣就放棄了。轉行的話,日常勸退3000字。

急於求成也正常,我建議直接就學你要做的東西相關語言和平台。不要管什麼演算法數據結構,基礎知識和狗屁語法。在你三分鐘熱度結束之前做最感興趣的事情,中途不懂再去看相關知識,不然最後基礎沒學完就覺得無聊放棄了。不過,假若最後你還是堅持下來,那麼還是老老實實把基礎補了吧。


因為c語言標準庫里是沒有gui庫的…你想做gui的話得可以自己挑一個gui庫學學。不過不太建議,絕大多數人都不選擇用c干這個活…


一般人覺得程序都要有個漂亮的界面,其實這世界上沒有圖形界面的程序反而佔了大多數。


長遠考慮。

ubuntu+gcc+vim/notepad++,etc。

簡潔,迅速 。

vs的安裝你新手都要費老半天勁。

好吧好像ubuntu+gcc+vim也沒那麼容易搭好環境。

不說了,祝福你。

這東西多去百度,論壇而不是知乎。

哎呀好尷尬看錯了題目。

你想把c程序搞個界面?哦親愛的,c語言做界面本來就比較麻煩雖然也可以。c語言和控制台是為了讓你熟悉各種語法演算法數據結構的。做界面還是c++/c#/java等等面向對象語言比較方便,還有各種現成的gui庫很方便。會c語言再轉向其他語言例如c#/java,入門如切菜一般簡單,做個界面出來也像切菜一樣簡單。。


題主是剛開始學嘛?

從我自己出發,剛開始學基本沒有動過手,語法部分都是手寫程序+人腦編譯,所以反而沒有天天對著黑框框。

等到我意識到 誒,這怎麼老是黑框框啊 的時候,我的眼界已經不是剛入門時候的了,很容易就能明白gui只是程序的殼子,程序還是核心重要嘛。

學數據結構的時候,因為注意力都在代碼上,所以黑框框什麼的下意識無視了。

所以呢,我的想法是這樣:

1.把注意力放在代碼上,gui只是層殼

2.如果實在想要gui,那順便學個圖形庫也不錯啊。


別以為圖形化界面比控制台窗口高級。

圖形化界面就像是用挖掘機造房子一樣。

而你控制台界面就像學造挖掘機呢。

不應該慌張,你應該有優越感才對。


正常,有點耐心。這些東西才是編程正真核心的東西,學好這些很重要。

如果你非要做點界面出來玩玩,可以看看 HTML + CSS + JavaScript,

如果你已經學了C++,可以看看QT(其實沒什麼用)。


因為你的學習內容不包含圖形界面的部分啊。如果你覺得你學了很長時間了,學得夠了,你可以自己去學一些gui的東西或者其他想學的東西。如果去看了又不會,你又再回來補下不會的部分。反正別老想著別人來告訴你學習的路線,自己想做什麼直接去學就好了嘛


一開始你學C就沒弄清自己為什麼學C,詳細職業規劃可以看我的文章https://zhuanlan.zhihu.com/p/29845310 和https://zhuanlan.zhihu.com/p/28312748


不必在意,控制台和窗口程序只是程序的兩種展示形式,之所以初學者一般會做控制台程序,是因為控制台輸出東西相對簡單,圖形界面涉及的介面複雜些,僅此而已。

如果你覺得對開發圖形程序感興趣,可以了解下MFC或QT,它們把圖形界面的開發介面包裝成了相對易用的類庫,用起來比直接調用API簡單些,這兩個網上都有很多資料。


可以找小型圖形庫,嘗試寫圖形程序


因為GUI和CLI只是一種與程序交互的過程啊,寫CLI相對於GUI更為省事,一部分時候不一定只為了界面好看而做個沒啥用的GUI。


你自己不去學 GUI 怪別人?


你可以試試qt


大三開學開始學語言,準備改方向做IT。到現在零零碎碎差不多三個月吧,中間生了一場大病,經歷過健康問題,也耽擱過不少時間,實際上學的比較業餘。但是從我個人的觀點來說,學習一門語言和寫好代碼並不需要直接關係,學習語言的精髓可以讓你事半功倍。你比如,很多東西你開始不懂,跳過了可能就懂了,或者開始懂了,後來才知道自己是錯了,也有可能開始覺得有些東西必須掌握,後來發現無足輕重的。我舉個例子,就拿指針來說,你學c語言可能一直搞不清是個什麼,認為這是一種神奇的具有多重屬性的類型,但是你會發現,在彙編和在Windows pe裡面解釋得非常好,指針是一種儲存地址的變數,那我們實際上可以把指針當做[address]這種東西。你再比如,你說的什麼界面,你到後面看了win32之後發現其實控制台和Windows提供的界面本質上並無區別,都需要創建句柄,也需要消息循環來實現界面,你再接著學,你還會發現類似於驅動以及pe系統等等東西。所以說,對c語言的理解絕對不能通過實習什麼來提升自己的認識,必須要超前理解,很多代碼不一定要去寫,有很多編譯器自己自帶,或者網上都有,但是基本概念,基本知識不能不知道,有了這些知識短時間確實不會幫助你什麼,但是長時間效益明顯。因此來說,會寫也會,不會也好,都不重要,只要會打字,總可以寫的,不如安下心來,看看書,出去玩一玩,知識需要在休息的時候內化,不要過分在意,刻意緊張。你要相信,起點的高低決定發展的高度,而不是起點的早晚決定發展的高度,程序員也一樣是一個可以干一輩子的事業,我小姨爹四十歲的人還在烽火干工程師,像我年輕人就只管讀讀書就好了。


主流的語言就是這樣,c/c++、java、python……做程序員跟控制台玩一輩子很正常。至於花花綠綠界面,漂亮的窗口、按鈕,那是UI,那是前端,是程序設計里比較非主流的一小撮,而且其中相當一部分工作是由團隊中的美工mm完成。


其實這個問題很簡單,搞清楚學習編程做什麼或者有什麼想實現的,然後就動手去做,做的過程中自然就會明白這些東西各自的意義了。

別人說的再多,自己不動手不去體會,就沒辦法真正搞清楚這些工具真正的意義和要解決的問題。


推薦閱讀:

為什麼使用virtual關鍵字在C++與C#會出現不同的效果?求解答。
使用visual studio 2012編寫每一個c程序是都必須新建工程嗎?
我是一個物聯網新生,是先學C語言還是C++?
c++不滿足於小黑框控制台,下一步還應該學什麼呢?
C中未初始化的全局變數是弱符號,這句話對嗎?

TAG:C編程語言 | CC |