[問題] 範例程式碼無法執行

作者: BASICA (二楞子)   2019-07-08 14:07:27
開發平台(Platform): (Ex: Win10, Linux, ...)
Win 7 starter
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++ windows
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)

問題(Question):
以下是我按照書本範例程式一模一樣打下來的練習碼、哪裡寫錯了?
餵入的資料(Input:
寫入一數字介於0~100來計算成績
預期的正確結果(Expected Output):
寫成一完好的執行檔、算成績給ABCD等級的小程式。
錯誤結果(Wrong Output):
1>
作者: james732 (好人超)   2019-07-08 14:08:00
把stdafx移到第一行?現在的書還會用conio喔?
作者: LPH66 (-6.2598534e+18f)   2019-07-08 14:09:00
我覺得是 stdafx 的鍋...這是書裡要你寫的嗎?又或者, 你有另外寫 stdafx.h 嗎? 或書裡有要你/教你寫嗎?又或者書裡有沒有什麼開啟專案時的設定你沒做?最後個人好奇, 這是哪一本書? 沒前導就丟 stdafx 覺得微妙
作者: BASICA (二楞子)   2019-07-08 14:16:00
網友好!那一行是偵錯程式要我加上去的,如果不加上去也無法執行。請你們去掉那行看看會怎樣?我其實不知道那一行是什麼意思?我有用過c語言但是那是幾十年前了
作者: LPH66 (-6.2598534e+18f)   2019-07-08 14:35:00
要你加就表示你在開專案時有些設定跳過了你重開一個專案照書上寫的做一次看看會不會有問題
作者: MOONRAKER (㊣牛鶴鰻毛人)   2019-07-08 14:54:00
書錯了 把它燒了吧
作者: BASICA (二楞子)   2019-07-08 15:07:00
可能是我開專案時候沒挑好專案模式?我回家重新開一次開一個,就開主控台應用程式?
作者: moebear (萌熊)   2019-07-08 16:17:00
stdafx在vc裡面預設使用 可以關閉 不關就必須要寫1.stdafx移到第一行去 或是從屬性關掉先行編譯的標頭檔2.warning : void main 改成int main3.他會說scanf不安全請使用scanf_s getch改成_getch3在前面加上#pragma warning(disable:4996)來防止error二選一 加上pragma或是改用後者的函數
作者: BASICA (二楞子)   2019-07-08 16:27:00
謝謝回應,其實我看不懂網友回什麼?傷腦筋…我回家仔細想想,感謝
作者: a29022792 (我貓廚我驕傲)   2019-07-08 17:20:00
都是VC編譯器的問題
作者: feeya (24 August 升格為鄉民)   2019-07-08 17:27:00
stdafx.h是微軟萬惡的MFC產物
作者: Schottky (順風相送)   2019-07-08 17:35:00
stdafx.h 和 MFC 沒有直接關係那是微軟因為自家編譯太慢而發明的 precompiled header
作者: LPH66 (-6.2598534e+18f)   2019-07-08 18:44:00
只是 MFC 是最直接受惠(?)的微軟工具這樣然後 VC 記得開專案時會問你要不要設, 我猜原 PO 是這裡(不確定是微軟預設還是怎樣) 設定到了才會被問要加(太久沒用 VC/VS 的 IDE 介面開專案忘了預設有沒有...)所以才會請原 PO 重開一個專案, 專案設定都照做看還會不會順帶一提的是 precompile header 也並不是微軟專有其他各個編譯器有不同做法, 只是 stdafx.h 是微軟的做法(是說這些其實對一個程式新手都不是必須馬上懂的東西...)
作者: Bencrie   2019-07-08 18:50:00
pch 跟 ccache 有類似嗎
作者: petercoin (彼得幣)   2019-07-08 22:32:00
開空白專案就不會預設用stdafx了
作者: BASICA (二楞子)   2019-07-09 14:49:00
各位網友,我把規定的標頭置頂第一項,結果程式跑出來了,謝謝各位的解答,感激不盡
作者: LPH66 (-6.2598534e+18f)   2019-07-14 13:14:00
有點時間了回一下上面的比較問題, 我去查了一下 ccache它比較是整個檔案編譯結果的快取, 但 pch 是編譯器內部對於大家都有引入的標頭檔省去重覆編譯時間的暫存檔由於技術上來說 #include 的東西是編譯器幫你剪貼在該處因此大家都有的標頭檔如果大家都要重新從頭來過就浪費時間pch 就是先編一次後把內部分析等等結構留下來由此給所有其他檔案來使用, 這也是為何 pch 通常要擺最上面

Links booklink

Contact Us: admin [ a t ] ucptt.com