精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《feosus (FEOSUS)》之銘言: : 我的程式用到__int64的data type : 在compiler時卻發生了錯誤 : __int64 x; : cin >> x; : 他顯示no operator defined which takes a right-hand operand of type '__int64' : (orthere is no acceptable conversion) : 感覺非常奇怪,原本使用的環境是Visual c++ 6.0 : 後來我換了一個環境Dev c++卻又可以成功的執行 : 小弟是新手不知道有沒有版友可以幫我解答<(_ _)> 因為本來就沒有 __int64 這種東西 這是微軟自創語法.... 不能用很正常 64 bit 整數各家 compiler 支援方式不一 VC++ 用 __int64 gcc 用 long long 你可以 typedef long long __int64 你以為這樣就結束了嗎?沒有 你用 c++ 還好,你如果用了 C 的 printf.... 很不幸, VC++ 和 gcc 在 format 對 64 bit int 的指定方式不同 一個是 I64 另一個是 lld 基本上大部分的 compiler 都差不多,一般是只有微軟的會跟大家都不一樣 所以建議你除非必要不要用 VC++,以免自找麻煩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.100.8
UNARYvvv:long long 是 %lld 01/25 03:26
HZYSoft:謝謝更正,剛剛漏打,是 lld 沒錯 @@ 虧我前天才用到 >< 01/25 03:26
※ 編輯: HZYSoft 來自: 218.167.100.8 (01/25 03:27)
cplusplus:要用的話請用VC7 cin cout已經有支援long long的IO 01/25 08:17