2010-12-01 8 views
1
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 
     locale system(""); 
     locale::global(system); 

     wcin.imbue(system); 

     wstring data; 
     getline(wcin,data); 

     wcout.imbue(system); 
     wcout << data << L" length=" << data.length() << endl; 

     locale utfFile("en_US.UTF-8"); 
     wofstream file("my_utf_file.txt"); 
     file.imbue(utfFile); 

     file << data; 
     file << endl; 

     file.close(); 

     return 0; 
} 

答えて

3

あなたのシステムです。ロケール名はC++標準の一部ではないため、"en_US.UTF-8"は普遍的に有効ではありません。それに似たロケールが存在することは確かではありません。

2

ファイルシステムのない組み込みシステムでは動作しません。

もちろん、そのロケールがインストールされていない場合もあります。