VC++で日本語(マルチバイト)の文字が含まれているファイルを読み込もうと思っています。
例えばunicodeのファイルとして下記の内容があるとして、
11111
abcdef
いろはにほへと
このファイルから1文字ずつ読み込みたいのですが、ヘルプで調べたところfgetwc関数でマルチバイトの読み込みができるということを調べました。
ファイルのオープンは_wfopenを使用しているのですが、テキストモード・バイナリモードでどちらで開いても、fgetwc関数の戻りはファイルを1byte読んだ結果を返します。
半角文字の場合は"1"とか"a"を単純に呼んで、マルチバイト文字であれは"い"とか"ろ"というデータを読み込みたいのですが、どうすればいいでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
SJIS文字コード表はありませんか。
SJIS文字の第1バイトは、0x81 - 0x9F または、0xE0 - 0xFC,
第2バイトは、0x40 - 0x7E または、0x80 - 0xFC です。
因みに、半角カタカナは、0xA1 - 0xDF です。
残りは、ASCII で、ANSI の判定関数があります。
方眼紙に第1バイトと第2バイトを縦横に書いて、塗りつぶし
見てください。
尚、読みこんだ1バイトが int に格納される場合、一旦
0xFF でマスクして、上記の定数と比較すると安心です。
また、SJIS <-> unicode 変換の API がありますので、
MSDN などで確認されるとよろしいかと思います。
No.2
- 回答日時:
> では、SJISとかだとマルチバイトなので、半角文字は1byte、全角文字は2byteだと思うので、そのような場合はどうすればいいのでしょうか?
まず1byte読めば、それが'半角'か'全角の前半分'かが判別できるはず。後者なら残る1byteを読めばいい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
文字コードの利点、欠点
-
「1TB」のHDDに日本語は何字入...
-
【VB2005】テキストボックス内...
-
VBAでShift-JISのURLエンコード
-
ピクセル,dpiから容量(バイト...
-
pythonでバイナリデータを配列...
-
文字数の限界
-
CRC計算方法
-
固定文字のみ【文字化け】
-
memcmp バイナリデータの比較方法
-
UTF-8で5~6バイトになる文字コ...
-
VB6で漢字の1バイト目か2バイト...
-
エクセルシート名の制限を変更...
-
ビットスワップとバイトスワッ...
-
formからPOSTしたテキストエリ...
-
バイナリデータからの値の取得...
-
utf-8でメールを送信すると件名...
-
C言語でのLinuxとwindows共通の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
ピクセル,dpiから容量(バイト...
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
機種依存文字をチェックしたい。
-
PICマイコンで変数値の保持
-
【VB2005】テキストボックス内...
-
SQLで1バイト、2バイト混在...
-
ビットスワップとバイトスワッ...
-
VBAでShift-JISのURLエンコード
-
GetWindowTextでアドレスバーか...
-
C++ Builderで文字列をバイトに...
-
64bit対応
-
UCS-2の一覧表が欲しい
-
VB.NET LeftBの代用
おすすめ情報