Re: [問題]如何把char轉成int

看板C_and_CPP (C/C++)作者 (acer)時間16年前 (2009/07/19 16:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《adxis (acer)》之銘言: : #include <string> : #include <sstream> : #include <iostream> : int main() : { : using namespace std; : char input[10]; // using std::string is recommanded : int output; : input[9] = 0; : cin.read(input, 9); : stringstream convert; : convert<<string(input); : // 注意這個 string 建構式會用 '\0'來找結尾 : // 如果 input[9] 不一定是 '\0' : // 就要用別的建構式 : convert>>output; : // 如果要繼續使用 convert 要記得呼叫 convert.clear() 最近發現這邊有錯誤 iostream 的 clear() 只是清除 error flag (比如 fail 跟 bad) 並不會把 stream buffer 裡面的東西清掉,而把buffer reset的動作在 basic_ios 這個被所有 iostream 繼承的基底型別中並不存在,也許是因為 stream buffer 行為 差異較大,被封裝成 streambuf 的關係。目前我看到的是 stringstream 有實作一個 str() 函數,可以透過他直接設定新的 stream buffer (呼叫底層 streambuf 的函數),其他 stream 只能設定新的 rdbuf 給 stream ,也就是說 建立新的 streambuf 物件是外部的任務。 總結,對於 stringstream 而言,重設的動作如下 stringstream convert; convert.str(""); 修正一下以免誤導視聽 0rz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.20.25
文章代碼(AID): #1AOjAhMD (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AOjAhMD (C_and_CPP)