伊莉討論區

標題: C++ Switch Case 遇到的問題 [打印本頁]

作者: wlin2544    時間: 2017-6-14 04:03 PM     標題: C++ Switch Case 遇到的問題

提示: 作者被禁止或刪除 內容自動屏蔽
作者: wlin2544    時間: 2017-6-14 05:23 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: weirdococo    時間: 2017-6-14 05:44 PM

本帖最後由 weirdococo 於 2017-6-14 05:45 PM 編輯
wlin2544 發表於 2017-6-14 05:23 PM
baepi

我非常確定適用Switch case

range switch case
不再c++標準以內,那是GCC 4.9, Clang 3.5.1 的特殊語法,
所以因該check你的compiler先



補充內容 (2017-6-14 06:02 PM):
https://glot.io/snippets/eqsnvug0lu  懶得打你的程式碼,所以寫了一個case,在clang的狀況下不會錯。

補充內容 (2017-6-14 06:09 PM):
論壇可以去stackoverflow問

補充內容 (2017-6-14 06:12 PM):
個人建議,不要用一個編譯器特有的標準。

補充內容 (2017-6-14 06:14 PM):
問問題盡量用不要只有圖片,這樣大家都好debug
作者: wlin2544    時間: 2017-6-16 02:06 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: weirdococo    時間: 2017-6-16 05:26 PM

本帖最後由 weirdococo 於 2017-6-16 05:33 PM 編輯
wlin2544 發表於 2017-6-16 02:06 PM
那這樣 你說 不要只有照片的畫 那這樣是還需要什麼嘛!?
因為我那只是練習的而已 所以想說 拍照片比較方便 ...

編譯器那個要那裡改呀,每個IDE不同,甚至有一些IDE不支持
看看我的連結你的code因該可以在上面跑(其實不用註冊就可以用),
坦白說,有很多款C語言的IDE我都不會用,但是我聽說DEV C++一般是用gcc,
所以你去你的ide(可能安裝在Program Files (x86))
裡面找找看有沒有一個就坐gcc的執行檔案,gcc 4.x ..exe之類的,
在window中間,在powershell直接編譯你要的東西就好了(像是g++  yourFile.c -o something.exe),
只是你要確定你的gcc版本,一般來說 打 gcc -v 就會有版本號了,

問我IDE怎麼設定,我真的記不得,每一次都是google找的。





補充內容 (2017-6-16 05:27 PM):
還有一個重點,編譯不過的error message你沒給我們,我們也只能隔空抓藥!

補充內容 (2017-6-16 05:28 PM):
沒source code我們就不能執行,就不容易debug。你該給source code和圖片。

補充內容 (2017-6-16 05:31 PM):
還有不要鐵齒,說同樣的設定 同樣的東西,我們不會相信你的,因為往往就是東西不同(但不好察覺)造成的。


補充內容 (2017-6-16 05:36 PM):
像是那三個點是...還是•••我根本不知道。
作者: wlin2544    時間: 2017-6-16 09:46 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: weirdococo    時間: 2017-6-16 10:44 PM

wlin2544 發表於 2017-6-16 09:46 PM
是...小的 因為我看過網路上有一些的教學 他們也是...不是全行的
然後我剛剛又把程式碼全部重打一次
因為我 ...

Visual Studio 的編譯器是 cl.exe 甚麼來著,
總之不支持GCC 4.9, Clang 3.5.1 的特殊語法不奇怪,
但是我要告訴你,標新立異的是GCC 4.9, Clang 3.5.1 ,
要記得不要用標新立異的語法,會有移植問題。
作者: coal511464    時間: 2017-6-18 09:07 AM

你這是vs2012吧 這個版本的編譯器只支援到c++11 哦 之後的東西可能無法使用
除非你自己去改編譯器 而且這種寫法不是正規 STD 那個是自己做出來的
建議不要用 因為可能會有BUG
作者: wlin2544    時間: 2017-6-26 03:37 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ren1244    時間: 2017-6-26 11:26 PM

程式語言有標準
而除了標準之外,不同編譯器會有不同額外的功能

總之,圖片的寫法不是標準
所以編譯不過很正常

如果買來的書這樣寫
建議換一本比較好

除了switch的問題
int main也沒有回傳整數…
作者: kyo478    時間: 2017-6-28 11:09 AM

我覺得"..." 這是有問題的,把它改成正確的格式吧. 這樣就不會error
作者: wlin2544    時間: 2017-7-3 01:40 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kyo478    時間: 2017-7-4 01:57 AM

wlin2544 發表於 2017-7-3 01:40 PM
"..." 本身沒問題
他本來就有這個用法了

恭喜你解決這問題了!! 好吧 我去查查看"..."這個語法 C++ 真是太多功能了
作者: kuolung1    時間: 2017-7-5 12:49 PM

我確認過了,case 好像還沒有支援 ... 這個東東,
還是您用到,另一種 c++ 模式了
作者: wlin2544    時間: 2017-7-6 01:50 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kuolung1    時間: 2017-7-6 06:41 AM

wlin2544 發表於 2017-7-6 01:50 AM
不過我的問題 是從書本上面看到的
剛好下面這個網址的最下面也有講到~~~

文中有特別提到:

--> 如果您比對的是一個數值範圍,在gcc的C++編譯器中還允許這樣的比對方式:

所以這個方式只有gcc編譯器才行
作者: CodeMonk    時間: 2017-7-6 11:22 AM

wlin2544 發表於 2017-7-6 01:50 AM
不過我的問題 是從書本上面看到的
剛好下面這個網址的最下面也有講到~~~
  1. 如果您比對的是一個數值範圍,在gcc的C++編譯器中還允許這樣的比對方式:
  2. switch(i) {
  3.     case 1 ... 30:
  4.         // statements
  5.     case 31 ... 1000:
  6.         // statements
  7.     default:
  8.         // statements
  9. }

  10. 如上所示範的,您可以使用...來設定一個範圍的數值,而不用連續的撰寫case來比對。
複製代碼
所以說,C++沒有...這個東東,這是gcc g++裡面的特殊語法。


補充內容 (2017-7-6 11:25 AM):
總覺得你沒有理解甚麼叫做"不標準"寫法意味著甚麼,也不理解為甚麼上面有人建議你建議換一本書的意義。
作者: wlin2544    時間: 2017-7-6 03:52 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: wlin2544    時間: 2017-7-6 03:52 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kuolung1    時間: 2017-7-7 10:53 AM

所以建議您先選定您的程式環境,再選定 編譯器,暫時,都不作更動,再學習,會少一些問題,
把重心放在學習語言上,而不是工具,
作者: wlin2544    時間: 2017-7-12 12:18 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kitmsg    時間: 2017-7-22 05:59 PM

長知識.............................................
作者: hsm321t45506    時間: 2017-7-30 12:18 PM

C語言貌似不能使用這功能
或許C++支援這種形式
我學C語言沒看過case用 ...

作者: wlin2544    時間: 2017-8-2 11:21 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: wlin2544    時間: 2017-8-2 11:22 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: o_g349    時間: 2017-9-12 05:13 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: qwe21914    時間: 2019-11-1 12:41 PM

不知是不是VS版本的問題~~




歡迎光臨 伊莉討論區 (https://attach1201.eyny.com/) Powered by Discuz!