0
源代碼中包含以下內容。在cout中截斷的C++預處理器值
#define VAR 3.0
,但是當我試圖把它打印出來,
cout << VAR;
我得到的值
3
當我通過一個預處理標誌-DVAR同樣的事情發生。我已檢查輸出與
g++ -E -P
和正確的值正在被預處理器替換但可執行輸出正在被截斷。
源代碼中包含以下內容。在cout中截斷的C++預處理器值
#define VAR 3.0
,但是當我試圖把它打印出來,
cout << VAR;
我得到的值
3
當我通過一個預處理標誌-DVAR同樣的事情發生。我已檢查輸出與
g++ -E -P
和正確的值正在被預處理器替換但可執行輸出正在被截斷。
你可以嘗試做cout << 3.0;
並同時獲得輸出3 它不是做它的預處理器,它只是試圖輸出浮動,這是浮動的打印方式
如果你定義:
#define VAR "3.0"
你會得到想要的輸出
它不被截斷,它是圓的。如果您想將其作爲_string_輸出,請將其定義爲一個。 –
是什麼讓你認爲它與預處理器有什麼關係? – juanchopanza
它甚至不是一種類型轉換。 cout只是試圖變得聰明,並且看到該值沒有任何分數,因此打印出整數部分。如果它是'#define VAR 3.1415926535',則輸出將是'3.14159' –