2012-10-02 117 views
-1

感謝您查看我的C++問題。關於在C++中使用括號和括號表示

我有一個問題,我面對。

我得到了一個公式以這種格式

Data = [ (percentage/15) – (var1 + var2)/20] * [ var3 + var4]; 

,如果我把這個上面的語句中,它會與

sample.cpp:131:1: error: stray ‘\342’ in program 
sample.cpp:131:1: error: stray ‘\200’ in program 
sample.cpp:131:1: error: stray ‘\223’ in program 
sample.cpp:131:81: error: ‘(percentage/ 15)’ cannot be used as a function 

如何更改數據的語句編譯,以制工作在C++

+5

只需將括號替換爲parens即可。 –

+0

說真的,這是個玩笑嗎?任何介紹性的C++材料都會在第一頁的某處介紹。 SO不能替代研究。 –

+0

不起作用。如果我用parens替換括號 –

回答

4

有兩個問題在這裏:

  1. 您不能使用[]來分組表達式。將它們更改爲()
  2. 您使用的減號實際上是一個連字符(unicode字符U + 2013),而不是您應該使用的正常連字符減號字符(U + 002D)。從源文件字符到基本源字符集的映射是實現定義的,並且您的編譯器不會將en-dash映射到負字符(像大多數編譯器,我想象的那樣)。

這裏的技巧:不要只從一個文檔複製文本到你的代碼,尤其是當其他文件不是代碼。

這裏是正確的表達:

Data = ((percentage/15) - (var1 + var2)/20) * (var3 + var4); 

你要顯示,有出現不應該有三個字節的錯誤。他們是(八進制):342 200 223。在二進制中,這是11100010 10000000 10010011。快速谷歌搜索會告訴你,這是U + 2013的二進制表示。