忍者ブログ
適当に日々あったこととか書いてます。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

cout、wcout、ファイルへの出力とかのメモです。

なんかあんまりMSDNはない感じ・・・?
cout MSDNでぐぐってみたら、自動で日本語に翻訳してる模様。
まぁ説明はなんとなく解らなくもないが・・・と思いつつ横のメニューを見てみたら、

- Stream オブジェクトのグローバル
 . cerr
 . cin
 . あふれてください。
 . wcerr

とかになってて吹きました。
あふれてください はclogだそうです。
無理するからそうなるんだよ・・・。

説明は長いもんで続きに格納です。


cout、wcoutは

#include < windows.h >
#include < stdio.h >
#include < iostream >
using namespace std;

int main()
{
char cBuff[] = "ghijkl";
WCHAR wcBuff[] = TEXT("GHIJKL");

cout << "abcdef" << flush;
cout << cBuff << endl;
wcout << TEXT("ABCDEF") << flush;
wcout << wcBuff << endl;

return 0;
}

みたいな感じで使用する。

2バイト文字が入ってて、文字化けるなら

#include < windows.h >
#include < iostream >
using namespace std;

int main()
{
char cBuff[] = "いい天気";
WCHAR wcBuff[] = TEXT("また明日");

cout.imbue(locale("japanese"));
wcout.imbue(locale("japanese"));

cout << "おはよう。" << flush;
cout << cBuff << endl;

wcout << TEXT("さようなら。") << flush;
wcout << wcBuff << endl;

return 0;
}


とかするといいらしいです。
japaneseは使用する言語ごとに変えると思われますってかそうとしか考えられない。

ついでにファイルの入出力。

#include < windows.h >
#include < fstream >
using namespace std;

int main()
{
ofstream fout;
char cBuff1[] = "hijklmn";
char cBuff2[] = "いい天気";

// hoge.txtを新規作成。あれば上書きで新規作成
fout.open("hoge.txt", ios::out);

if(fout.is_open()){
// ファイルオープン成功
} else {
return 0; // ファイルオープン失敗
}

fout << "abcdefg" << flush;
fout << cBuff1 << endl;

fout << "こんにちは。" << flush;
fout << cBuff2 << endl;

fout.close();

return 0;
}

2バイト文字コードでファイルに出力したいんじゃ!って場合

#include < windows.h >
#include < fstream >

using namespace std;
namespace win32{
typedef basic_ifstream < WCHAR > ifstream;
typedef basic_ofstream < WCHAR > ofstream;
}

int main()
{
win32::ofstream wfout;

WCHAR wcBuff1[] = TEXT("GHIJKL");
WCHAR wcBuff2[] = TEXT("また明日");

// これがないと日本語ファイル名が文字化けする。
locale::global(locale("japanese"));
// これがないとひらがなとか漢字が出力できない模様。
wfout.imbue(locale("japanese"));

wfout.open("ほげ.txt", ios::out );
if(wfout.is_open()){
// ファイルオープン成功
} else {
return 0; // ファイルオープン失敗
}

wfout << TEXT("ABCDEF") << flush;
wfout << wcBuff1 << endl;
wfout << TEXT("こんばんは。") << flush;
wfout << wcBuff2 << endl;

wfout.close();
return 0;
}

namespace win32うんぬんかんぬんっつーのはどっかのHPで見たんですけど、もうどこだったのか記憶がない・・・。
どこだったんだろう。とりあえずこれでできます。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新CM
[06/02 Sai]
[04/23 Sai]
[02/02 tuku]
[11/06 sai]
[10/13 Sai]
最新TB
プロフィール
HN:
なりゆき流
性別:
非公開
趣味:
ネトゲ、読書(漫画とか漫画とか漫画とか)
自己紹介:
日々をだらだらと生きております。
バーコード
ブログ内検索
アクセス解析

HTML & CSS Designed by ittuan

忍者ブログ │ [PR]