テキストファイルに全角文字を出力したのですがなぜか出力するとテキストファイルには???と出力されてしまいます。
どうしたらちゃんと出力されるでしょうか?
#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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Acccess レポートをグループ別...
-
VC++でUTF-8のファイルを出力し...
-
シェルコマンドの 2>&1 とはど...
-
Excel のページを Jpegファイル...
-
Paiza Cloudです。 どうやれば...
-
Paiza Cloudです。学籍番号と氏...
-
raw形式からbmp形式への書き込...
-
C言語でのppmファイル作成
-
CreateProcess関数と実行後の戻...
-
MS-Word で作成した表をLatexに...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
PDFファイルを指定の名前でプロ...
-
ファイルの文字コードをUTF-8に...
-
CSV形式に変換
-
Base64でエンコードした後の文...
-
ファイル出力の場所を指定
-
VBA でメモ帳へ保存する際の保...
-
フォルダー、ファイル名を一括...
-
Maximaでダブルクリックでwxmフ...
-
BitBltについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
Wordマクロで指定したフォルダ...
-
二次元配列をクリップボードに...
-
ファイル形式またはファイル拡...
-
CreateProcess関数と実行後の戻...
-
fortranのtxtファイル出力書式...
-
サウンド出力のデバイスを選択...
-
VBA でメモ帳へ保存する際の保...
-
1行ずつではなくまとめてファイ...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C++ fprintf_sの使い方がわからん
-
ファイルの文字コードをUTF-8に...
-
pLaTeX の EPSファイル読み込み...
-
AccessVBA複数レポート条件毎に...
-
標準出力とファイルに効率的に...
おすすめ情報