看板 C_and_CPP 關於我們 聯絡資訊
請問一個小問題,我想要作到一個像這樣 string txt="34"; int num=0; func(txt,num);--->num=0x34; txt="0A" func(txt,num);---->num=0x0A 跟內建的轉換不太一樣 而我程式是這樣 template <class T> void convertFromString(T &value, const std::string &s) { std::stringstream ss(s); ss >> value; } int main(){ string str; int num=0; cout.unsetf(ios::dec); cout.setf(ios::hex); cin>>str; convertFromString(num,str); cout<<num; return 0; } 請問我錯在哪裡呢?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.141.35
purincess:如果你是用cin輸入的話其實 cin>>hex>>num;好像就好了.. 10/31 07:33
tyc5116:噗....還真的是耶,我繞了一大圈@@ 10/31 08:02
tyc5116:對了,請問如果我堅持string to int的方式來實現要怎麼改? 10/31 18:43
james732:你是要這樣? http://codepad.org/1s8qrIXh 10/31 18:48
tyc5116:是啊,但是這樣轉不過去啊 10/31 19:06
james732:怎麼個轉不過去? 10/31 19:07
tyc5116:cout<<num出來都是0啊 10/31 19:19
james732:http://codepad.org/JSzTobJD 當我str是"100"的時候 10/31 20:07
james732:cout << hex <<num; 出來的結果也是 100 10/31 20:07
james732:如果你跑出來不是這樣,那應該是其他地方有問題 10/31 20:07
tyc5116:我是想要輸入"A",num=0x0A,所以跑出來應該是10(10進位) 10/31 20:36
james732:http://codepad.org/KMghGI97 這樣跑出來是10沒錯 10/31 20:41
tyc5116:恩恩...謝謝你了 10/31 20:59
com9:用cstring 的 strtol 就能做到了吧? 11/01 21:33
com9:啊 那只支援 c string 11/01 21:33