wstring 型の一行読込み(std::getline)について – プログラミング – Home

wstring 型の一行読込み(std...
 
通知
すべてクリア

[解決済] wstring 型の一行読込み(std::getline)について


マラソンマン
 マラソンマン
(@マラソンマン)
ゲスト
結合: 15年前
投稿: 2
Topic starter  

お世話になります、UTF-8 で書かれたファイル(日本語)を一行づつ読込んで処理を行い
たいのですが、
一行読込み変数をstd::wstring 型にしますと、下記のエラーが出ます、解決策をご教示
願えませんでしょうか。

環境:Visual Studio 2005 pro 及び、gcc (GCC) 4.2.4

#include <string>
#include <fstream>

int main(int argc, char * argv[])
{
std::wstring wline;
std::ifstream ifs( *argv );
if(ifs.fail())
return false;
while( getline(ifs, wline.c_str()) ) {
}

return 0;
}

error C2784: 'std::basic_istream<_Elem,_Traits>
&std::getline(std::basic_istream<_Elem,_Traits>
&,std::basic_string<_Elem,_Traits,_Alloc> &)' : テンプレート 引数を
'std::basic_istream<_Elem,_Traits> &' に対して 'std::ifstream' から減少できませ
んでした
'std::getline' の宣言を確認してください。

error C2784: 'std::basic_istream<_Elem,_Traits>
&std::getline(std::basic_istream<_Elem,_Traits>
&,std::basic_string<_Elem,_Traits,_Alloc> &)' : テンプレート 引数を
'std::basic_string<_Elem,_Traits,_Alloc> &' に対して 'const wchar_t *' から減少
できませんでした
'std::getline' の宣言を確認してください。

error C2780: 'std::basic_istream<_Elem,_Traits>
&std::getline(std::basic_istream<_Elem,_Traits>
&,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : 3 引数が必要です - 2
が設定されます。
'std::getline' の宣言を確認してください。

error C2143: 構文エラー : ')' が '{' の前にありません。
fatal error C1903: 直前のエラーを修復できません。コンパイルを中止します。
myproje - エラー 5、警告 0


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

ifstream 改め wifstream ちゃいますか?


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

それはそれとして、wstring で UTF-8 って読めるんですか。
実装にもよるでしょうけど、少なくとも VC++ で Unicode ってのは UTF-16 のことなの
ではないかと。
Windows では UTF-8 は MBCS の扱いですよ。


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

wifstream は
Shift_JIS で書かれたものを utf-16 で読み込むもの、
として実装されていたような気がします。


返信引用
マラソンマン
 マラソンマン
(@マラソンマン)
ゲスト
結合: 15年前
投稿: 2
Topic starter  

皆さん、回答ありがとうございましたそして、返事が遅れたことをお詫びします。
VC++ の場合、επιστημη さんのwifstream で目的が果たせました
aetos さんのご指摘のとおり、wstring ではUTF-8 は読めず、PAI さんのご指摘通りで
した
linux のUTF-8 はstring で扱う事ができたことを報告しておきます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました