精華區beta Programming 關於我們 聯絡資訊
因為網路的資料不太多,所以自己查了查了 std::wstring是由basic_string<w_chart>定義而來的 而basic_string的結構是 template< class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > class basic_string; 關於 char_traits<wchar_t> 的話在C++標準可以查到 template <> struct char_traits<wchar_t>{/*...*/} 但後來想想還是不太知道怎麼使用它,而網路上我又不能找到更多的資訊 所以我在大概看了C++標準怎麼定它的時候,就想說自己寫個程式try try看 因為我是ssh連遠端 linux的,而我在Linux系統底下寫個像下面的code 我以 pietty 的UTF-8格式作連線 在以 GCC 3.6版本的作完compile後 然後執行下面兩行程式後 std::wstring A = L"abcdefg測試"; std::wcout<<A; 會印出 abcdefg 而已,而測試沒印出來 為了以防說測試可能沒印出來,是字元顯示的問題,我把這整列都copy起來 複製到自己Windows上的記事本,結果還是只有 abcdefg字串 所以我就不明白了,為什麼我沒辦法印出 abcdefg測試完整的字串 到底wstring為何不會印出 "測試" 這兩字 所以想請教一下在開發系統上有使用過wstring的前輩們 到底是發生了什麼問題?? 如果今天程式碼換到其它系統上時,也會不會可能發生類似的問題。 我不知道到底是什麼原因,自己在亂猜, 亂猜一:關於 wstring的話,會因為不同OS有不同的支援嗎?? 亂猜二:因為是ssh遠端連線的問題 亂猜三:Compiler支援上的問題 我的開發經驗太淺了,對於wstring不夠了解 在此請教各位前輩了, 或者還是說有什麼不錯的網頁,有比較完整的介紹wstring的, 謝謝 ^_____________________^y -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.135.33
SBT:我的認知是wchar_t不是utf8(mbcs)他不會幫你轉 59.105.97.250 12/14 23:40
SBT:可能要用setlocale,或者真的自己轉utf8輸出 59.105.97.250 12/14 23:42