
テキストファイルに全角文字を出力したのですがなぜか出力するとテキストファイルには???と出力されてしまいます。
どうしたらちゃんと出力されるでしょうか?
#include<windows.h>
#include<TCHAR.h>
int WINAPI _tWinMain(HINSTANCE hInstance,HINSTANCE hprevInst,LPTSTR nCmdLine,int nCmdShow)
{
FILE* fp;
fp=_wfopen(_T("takoyaki.txt"),_T("w"));
if(fp==NULL)
{
MessageBox(NULL,_T("ファイルが開きません"),_T("エラー"),MB_OK);
}
fwprintf(fp,_T("%s"),_T("おはよう。"));
return 0;
}
環境はWinXP pro、
開発環境はVC++2005です。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
単純にテキストファイルの確認方法がUnicodeに対応していないだけという可能性もあります。
古いテキストエディタだとシフトJISにしか対応していない場合がありますから。あるいは文字コードの種類が判別できていないだけの可能性もあります。VC++2005だとデフォルトではUTF16のコードを出力するので、UTF16に対応したテキストエディタ等でないと文字化けします。
No.1
- 回答日時:
ロケールをセットしていないためだと思います。
(「何語を使いますよ~」と宣言するようなものです)
Unicodeを使う場合はその必要があります。
以下を書き加えてください。
#include <locale.h>
及び
_tsetlocale(LC_ALL, _T("japanese"));
それで可能になると思いますが
_T("")マクロはUnicodeのときはそれようにL""と展開されマルチバイトの時は""と展開されますので、この意味を本当に通すなら
同じく両方対応するように
_wfopen → _tfopen
fwprintf → _ftprintf
などとするのがベストです。
(こうしないとマルチバイト文字を使う設定に直した場合全部手直ししないといけなくなります)
この、両対応の
それぞれの関数(実際にはこれらもマクロ)の名前は
MSDNをみて
_wfopen→_tfopenなら
http://msdn.microsoft.com/ja-jp/library/yeby3zcb …
こちらのページになりますが、真ん中あたりの
『汎用テキスト ルーチンのマップ』
という欄を見ればわかるようになっています。
fwprintf → _ftprintfも同じです。
http://msdn.microsoft.com/ja-jp/library/xkh07fe2 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
単二電池
あなたの家に何本ありますか?
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
VC++でUTF-8のファイルを出力したい
C言語・C++・C#
-
wsprintf関数の使い方について
C言語・C++・C#
-
-
4
visual c++でutf-8の扱い
C言語・C++・C#
-
5
CString から LPCTSTRの型に変換
C言語・C++・C#
-
6
C++でのCRLFについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルに改行コード...
-
raw形式からbmp形式への書き込...
-
コマンド(例えばls)の出力結果...
-
ファイル形式またはファイル拡...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
CBool関数について VB6とVB.net...
-
パイソンでのVSコードで
-
VBA でメモ帳へ保存する際の保...
-
1行ずつではなくまとめてファイ...
-
C++ fprintf_sの使い方がわからん
-
ファイル出力の場所を指定
-
ADボードのプログラムでの無限...
-
アプリを実行すると、作成者を...
-
シェルコマンドの 2>&1 とはど...
-
fortranのtxtファイル出力書式...
-
C言語での縦方向のファイル出力...
-
C言語のプログラムが異常終了し...
-
Accessクエリをcsvでエクスポー...
-
C言語のローカル変数初期化に...
-
TCL言語の文字コード指定方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
AccessVBA複数レポート条件毎に...
-
Wordマクロで指定したフォルダ...
-
Acccess レポートをグループ別...
-
ファイルの文字コードをUTF-8に...
-
ファイル出力の場所を指定
-
BitBltについて。
-
ファイル形式またはファイル拡...
-
pcap形式データをテキストへ抽出
-
シェルコマンドの 2>&1 とはど...
-
CSVファイルを任意の場所に出力...
-
1行ずつではなくまとめてファイ...
-
raw形式からbmp形式への書き込...
-
CBool関数について VB6とVB.net...
-
VC++での外部ファイル(batファ...
-
CreateProcess関数と実行後の戻...
-
アクセス>マクロ>テキスト変換
-
半年以上前のファイルの時刻表示
おすすめ情報