[問題] 字串轉數字

看板C_and_CPP作者 (累人啊....)時間12年前 (2011/10/31 07:22), 編輯推噓1(1014)
留言15則, 4人參與, 最新討論串1/1
請問一個小問題,我想要作到一個像這樣 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

10/31 07:33, , 1F
如果你是用cin輸入的話其實 cin>>hex>>num;好像就好了..
10/31 07:33, 1F

10/31 08:02, , 2F
噗....還真的是耶,我繞了一大圈@@
10/31 08:02, 2F

10/31 18:43, , 3F
對了,請問如果我堅持string to int的方式來實現要怎麼改?
10/31 18:43, 3F

10/31 18:48, , 4F
你是要這樣? http://codepad.org/1s8qrIXh
10/31 18:48, 4F

10/31 19:06, , 5F
是啊,但是這樣轉不過去啊
10/31 19:06, 5F

10/31 19:07, , 6F
怎麼個轉不過去?
10/31 19:07, 6F

10/31 19:19, , 7F
cout<<num出來都是0啊
10/31 19:19, 7F

10/31 20:07, , 8F
http://codepad.org/JSzTobJD 當我str是"100"的時候
10/31 20:07, 8F

10/31 20:07, , 9F
cout << hex <<num; 出來的結果也是 100
10/31 20:07, 9F

10/31 20:07, , 10F
如果你跑出來不是這樣,那應該是其他地方有問題
10/31 20:07, 10F

10/31 20:36, , 11F
我是想要輸入"A",num=0x0A,所以跑出來應該是10(10進位)
10/31 20:36, 11F

10/31 20:41, , 12F
http://codepad.org/KMghGI97 這樣跑出來是10沒錯
10/31 20:41, 12F

10/31 20:59, , 13F
恩恩...謝謝你了
10/31 20:59, 13F

11/01 21:33, , 14F
用cstring 的 strtol 就能做到了吧?
11/01 21:33, 14F

11/01 21:33, , 15F
啊 那只支援 c string
11/01 21:33, 15F
文章代碼(AID): #1EhTn38f (C_and_CPP)