[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/02 12:18 / Filesize : 258 KB / Number-of Response : 992
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.64【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:25:51 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.63【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1231499251/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。


331 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:35:33 ]
template<TwidthX, TwidthY>class Btn{
static struct{int x, y; char *c;}m_BTN[3];
}
追い出すメリットが勝つるメンバは追い出す。

332 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:46:04 ]
>>329
返信ありがとうございます。
考え方として了解しました。



333 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:59:08 ]
>>331
返信ありがとうございます。
Btnクラスを作って、CHogeで参照するということでいいでしょうか?
(CHogeがメンバクラス(Btn)をもつという解釈でいいでしょうか?)
templateにしている理由が理解できていないのですが、お時間があれば説明いただけないでしょうか?


334 名前:デフォルトの名無しさん [2009/03/10(火) 04:18:48 ]
class Game {
char **board;
public:
void init() {
board = reinterpret_cast<char**>(new char[9][9]);
}
};
こう書くとコンパイルは通るんですが、boardにはBadpointerの値が
入ってます。なにか間違ってますでしょうか?


335 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 04:36:16 ]
何もかもが間違っているような・・・

なんでキャストしてるのん?
そして何ゆえそんな危険なキャストしてるのん?
あと、配列の配列は配列のポインタで受けることはできても
ポインタのポインタで受けることはできないよ?

っていうか、僕も初心者だから意味わからん^^

336 名前:デフォルトの名無しさん [2009/03/10(火) 05:50:54 ]
>>335
ありがとうございます。
char *p[10] = new (char*)[10];
とか出来なくて、あんなコードになってしまいました。
どうすればいいですか?
char **p;
char *p[10];
とかをnewで初期化するにはどうすればいいですか?



337 名前:デフォルトの名無しさん [2009/03/10(火) 06:55:33 ]
p = new char[10];

338 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:30:43 ]
そもそもinit()を呼んでいるのだろうか。

339 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:26:15 ]
char** p;
p = new char*[10];



340 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 15:44:07 ]
void init(int sfx1,int sfx2){ // 素敵な cast をどうしても使いたい場合。
board = reinterpret_cast<char**>(new char[sfx1*(sizeof(char*)+sfx2)]);
for(int i = 0; i< sfx1; ++i)board[i] = new(reinterpret_cast<char*>(board)+sfx1*sizeof(char*)+(sfx2*i))char[sfx2];
}

341 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:09:07 ]
>>340
何がなにやらわけわからんw

342 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:33:37 ]
>>340 を理解した上で
char *p[10]; とは char* を 10個用意する事だよ と指摘されればポンと膝を打つ
って寸法だ。

343 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 18:27:00 ]
newってtry-catchするのとnothrowするのどっちがいいの?

344 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 18:52:35 ]
>>343
try-cathc も nothrowも付けずにほっとく

345 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:13:46 ]
膝を打った後どっちに進むかは読み書きしたコード量に因るかな


346 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:31:35 ]
ptr_arrayつかうか、吹っ切れてmallocに先祖返りするかってことかい?

347 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:48:32 ]
パッディングの罠に嵌りに逝くか[]演算子のくっ付き方を考えるか

348 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 07:51:57 ]
初心者が配列 new なんか使うんじゃねーよ。 std::vector にしとけ。

349 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:13:45 ]
vector 使うのが正解
下手に深く判ってるコード書いて、おまけに手が遅かったりしたら上司に認められて
他人のクソコードをメンテする係に抜擢されちまうよ



350 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:37:46 ]
C++ Coding Standradsでは
生の配列はクラス内部で小さなデータを持ちまわるような場合は使ってもいいって書いてたな、確か。
同じく、生ポインタも局所的な使い方なら可。スマポは便利だがやや使われすぎの嫌いがあるとも。

Googleコーディング標準ではスマポよりもまずスコポの使用を考えたら?って提案してた。

351 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:08:52 ]
スコティッシュポールド

352 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:10:08 ]
最近の若い子の省略はよくわからんのぉ

353 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:13:29 ]
シコスでは
生配はクラ内で小デを持ちまわるような場合は使ってもいいって書いてたな、確か。
同じく、生ポも局所的な使い方なら可。スマポは便利だがやや使われすぎの嫌いがあるとも。

グルコではスマポよりもまずスコポの使用を考えたら?って提案してた。

354 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:22:02 ]
スコポ の検索結果 約 495 件中 1 - 10 件目 (0.43 秒)
スマポ の検索結果 約 1,710 件中 1 - 10 件目 (0.09 秒)

355 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:25:01 ]
>>350
scoped_ptrもスマートポインタの一種だよ。

356 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:42:06 ]
局所的、たとえば小さな関数内とかじゃ、なまぽで良いだろ
出来れば、ぽんたを扱わないで良い言語を使い、でC++で無いといけないところだけ
達人がその部分をプログラムする。

357 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:47:38 ]
スマポってのも曖昧な言葉だな
auto_ptrなんか心情的にはそう呼びたくないけど一応スマポだし
*とかが使えるからってイテレータまでスマポ呼ばわりする奴もいるし
逆にshared_ptr以外はスマポじゃないって奴もいるし

スマポって何?

358 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:50:02 ]
アホコードを書くDQNを隔離しておくための足かせ

359 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:00:48 ]
ポインタのような動きをするものは全てスマートポインタ
具体的に言うと*とか->が使える生ポインタ以外の物



360 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:02:12 ]
そーなのかー

361 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:20:52 ]
>>358
お舞! それは絶対に正しい。

ポインタすら使えない、つまりC++を扱ってはいけないような奴に、
C++を使わせるのに必要なものだよな

362 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:27:16 ]
自己も相対的にDQNかも知れない場合に備え
自主的に足かせを装着する訳だが

363 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:32:27 ]
>>362
ですよね〜。

364 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:43:09 ]
ほんとDQNですみません。

365 名前:デフォルトの名無しさん [2009/03/12(木) 02:06:14 ]
ここでC++の勉強法を質問するのはスレ違いでしょうか?
それらしいスレがなかったので、一度ここで聞いてみようかなと…
独学のため、先輩方の意見などをお聞きしたいと思っています。

366 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 02:54:55 ]
おれも知りたいかも
Cやったら、ビジネス的な意味とオブジェクト指向を学びたいので、次はJavaに行くべきか、C++もやったほうがいいのか、迷う
C++は、モノにするには、やる範囲が広そうだし、Javaなのかな

ビジネス的な意味でC++,C#,Javaの位置付けってどういうもんなんですか?

367 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 06:58:49 ]
スレ違い

368 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 12:20:28 ]
まずビジネス的な意味というのがわからん訳だが

369 名前:デフォルトの名無しさん [2009/03/12(木) 19:44:28 ]
Windows上のC++の質問なんですが、プロパティの中のコード生成のランタイムライブラリーには
/MT
/MTd
/MD
/MDd
の4つの選択肢がありますが、デフォルトは/MDdだと思いますが、本のサンプルを実行する際に、
/MTdに変更するように指示があり、実際変更しなければコンパイルできませんでした。
どういう場合に/MTdにしなければだめになるのでしょうか?




370 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:13:31 ]
>>369
ソリューションの構成をDebugからReleaseにする
ツールバーの下にDebugっていうドロップダウンリストがあるからそこで切り替えろ

371 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:22:34 ]
ネットワーク共有ファイルに対してFindFirstFileを行うにはどうすればよいのでしょうか?
例えば
\\Server\folder\test.txt
にあるファイルに対して
FindFirstFile( "\\\\Server\\folder\\test.txt",&data );
とやっても失敗になってしまいます。
ショートパスからロングパスにしたいのですが、、、、

372 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:58:54 ]
ドライブにマウントしてから x:\test.txt とかでアクセスすればいいのでは?

373 名前:デフォルトの名無しさん [2009/03/13(金) 14:45:20 ]
2chトリップ生成プログラム教えてください。
ライブラリ作った人とかいますか?

374 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:17:00 ]
団子さんの出番ですね!!

375 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:21:22 ]
やばい、>>374と同じ事が頭に浮かんだ

376 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:37:46 ]
>>373
2chのトリップと互換のPHPやらPerlやらの掲示板ソースでも探したらあるよ

377 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:40:55 ]
[環境]C++ WindowsMobile向けアプリ(練習でデスクトップ版を作ります)
GoogleCalendarとの同期を取るアプリを作りたいんですが、
最初の認証(ユーザーアカウント&パスワード)をどうやって投げれば
いいのかご存知の方いらっしゃいましたら、ご教授願えないでしょうか?





378 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:44:06 ]
>>373
PHPのを探してきた
$trip = '';
if (preg_match("/([^\#]*)\#(.+)/", $_POST['FROM'], $match)) {
$salt = substr($match[2]."H.", 1, 2);
$salt = preg_replace("/[^\.-z]/", ".", $salt);
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
$trip = substr(crypt($match[2], $salt),-10);
$_POST['FROM'] = $match[1].'</b>◆'.$trip.'<b>';
}
cryptがDESかMD5かで結果が変わる

379 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:55:43 ]
>>373
Cのソースがあった
www.geocities.com/tk2001b/utripper/



380 名前:デフォルトの名無しさん [2009/03/14(土) 20:40:26 ]
using namespace std;
とソースの上に書くのと、
ソース全体を
namespace std {
...
}
というようにnamespaceの中に書くのとは、同じ意味ですか?


381 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:45:14 ]
違います

382 名前:デフォルトの名無しさん [2009/03/14(土) 21:00:19 ]
ありがとうございます。
どう違うか、教えてください。


383 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:04:06 ]
利用と宣言の違い棚。

384 名前:デフォルトの名無しさん [2009/03/14(土) 21:11:37 ]
わかりました。
後者の場合stdの中で宣言するというだけなので、Main関数を入れたりとかは
できないということですね。
ありがとうございました。

385 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:22:45 ]
std 名前空間内に自分で宣言を追加してはいけない。
規格上未定義動作になる。

386 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:23:57 ]
std::swapの特殊化は置いてもいいけどね。

387 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:31:35 ]
std::swapの特殊化じゃなくて、テンプレートの完全特化が許されてるってことね

388 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:03:47 ]
stringのvectorにファイルを一行づつ読み込んで、まとめて別のファイルに書き込むというプログラムを作ってるんですけど
エラーチェックは↓見たいな感じで十分ですかね?

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

void read(char *file, vector<string> &lines);
void write(char *file, vector<string> &lines);

int main(void)
{

vector<string> lines;

read("C:/Work/from.txt", lines);
write("C:/Work/to.txt", lines);

cout << "正常終了" << endl;

return 0;
}

389 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:04:39 ]
void read(char *file, vector<string> &lines)
{
ifstream ifs(file);

if(!ifs.is_open()){
cout << "コピー元ファイルを開けない" << endl;
exit(EXIT_FAILURE);
}

while(ifs.good()){
string line;

getline(ifs, line);
lines.push_back(line);
}

if(!ifs.good() && !ifs.eof()){
cout << "読み込み途中でエラー" << endl;
ifs.close();
exit(EXIT_FAILURE);
}
}



390 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:05:31 ]
void write(char *file, vector<string> &lines)
{
ofstream ofs(file);

if(!ofs.is_open()){
cout << "コピー先ファイルを開けない" << endl;
exit(EXIT_FAILURE);
}

vector<string>::iterator i = lines.begin();

while(ofs.good())
{
ofs << *i;

if(++i == lines.end())
break;

ofs << endl;
}

if(!ofs.good() && !ofs.eof())
{
cout << "書き込み途中でエラー" << endl;
ofs.close();
exit(EXIT_FAILURE);
}
}

391 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:39:45 ]
while (!feof()) {}
と同じ匂いを感じる。

ところで、
while (...) {
 string str;
 ...
}
より
string str;
while (...) {
 ...
}
の方が、コンストラクタとデストラクタが毎回走らない分、コスト的には良いよね?
でも、スコープを限定した方が可読性等の面からは好ましいよね?
どっちが良いのかな。

392 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:44:22 ]
その辺を言い出したらvectorから見直しだけどな。

393 名前:デフォルトの名無しさん [2009/03/16(月) 02:11:37 ]
>>391

{string str; while(...){...}}

394 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:26:56 ]
for(string str; ifs.good();)

395 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:36:54 ]
初期化がループに依存しないならコンパイラが良きに計らってくれると思うよ。

396 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:40:10 ]
getline(,)後!ifs.good()でも1回push_backしちゃうのはマズくないか。

397 名前:デフォルトの名無しさん [2009/03/16(月) 07:38:25 ]
VC++9での質問です。

あるライブラリをインクルードする必要があるのですが、
ソース中に #pragma comment(lib, "ライブラリ名") と書くと、LNK2005のエラーが出ます。でも、
プロジェクト→プロパティ→リンカ→追加のライブラリ
のところに「ライブラリ名」を書くとLNK2005は出なくなりコンパイルできます。
リンクの順序が関係してるのかと思ったのですが、よくわかりません。
どういう基準で方法を選べばいいですか?


398 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 07:41:35 ]
>>397
ライブラリのパスを通せばいいと思う

399 名前:デフォルトの名無しさん [2009/03/16(月) 07:50:49 ]
>>398
ありがとうございます。
ライブラリは見えてます。LNK2005は、同じライブラリを複数回リンクしようとした、
というエラーみたいなのです。自分の場合、
unsigned int *a = new unsigned int(100);
みたいな行がエラーになります。でもLNK2005が出ないやり方でリンクすると
この行も問題なくコンパイルされます。

書いてて思ったのですが、追加のライブラリのところにライブラリ名を書くと、
Visual Studioがリンクの順序を勝手に調整してくれるんですかね?




400 名前:デフォルトの名無しさん [2009/03/16(月) 13:38:45 ]
あるテーブルより、KOJIN_ID(数値型8桁)を一旦ホスト変数H_KOJIN_IDに入れ
それを11桁の文字型として出力しなければいけないのですが(余った桁はスペースで埋める)
下記のようにsprintf関数を使ってH_KOJIN_IDから、ファイル書き出し用構造体outの項目KOJIN_IDに
セットするときに、現状のままだと余った桁に0が入ってしまいます。

データセット部
sprintf(out.KOJIN_ID,"%11.11ld",H_KOJIN_ID);

余った桁に半角スペースが入るようなsprintf指定方法はありませんか?


401 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:41:57 ]
>>399
もしかして複数ファイルに分けてる?
スタティックライブラリの関数名がダブってるような気がする

402 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:44:55 ]
>>400
いってる意味がよく分からないけど
%11ld または %-11ld でいいのかな?

403 名前:デフォルトの名無しさん [2009/03/16(月) 16:44:14 ]
400です。
おかげさまで解決です。

404 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 16:54:03 ]
おかげさまってマルチでよそで答えもらっただけだろ。

405 名前:デフォルトの名無しさん [2009/03/16(月) 20:22:15 ]
std::cinで矢印キーの入力を取得することはできますか?


406 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:29:07 ]
質問です
WM_NCHITTESTをフックしたいのですが
SetWindowsHookEXの中のどの項目ならフックできるでしょうか?

407 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:16:04 ]
>406
>The WM_NCHITTEST message is sent to a window when the cursor moves
より、このメッセージは Send される。
従って WH_CALLWNDPROC か WH_CALLWNDPROCRET だが、いずれもメッセージを調べるだけで変更することはできない。
別途処理したいならサブクラス化とかが必要。

408 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:17:02 ]
っつーか、Win32API質問箱の管轄だな。

409 名前:406 mailto:sage [2009/03/16(月) 22:53:13 ]
>>407
ありがとうございます。
メッセージの変更ができなかった謎も解けました。



410 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:11:37 ]
const stringのイテレーターってどうやって宣言するんでしょうか?
std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>> でイテレーターを宣言すればうまくいくんですが、もっとスマートな書き方が知りたいです

411 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:13:31 ]
>>410
#include <string>

412 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:15:06 ]
>>411
#include <string>はちゃんとしてます

413 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:17:51 ]
>>412
ならイテレータの宣言は済んでる。

何がしたいのかよくわからん。 std::string::const_iterator i; みたいにイテレータ型の
変数を宣言したいってこと?

414 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:19:17 ]
あ、const_iteratorってやるんですね。解決しました。ありがとうございます

415 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:19:30 ]
const stringのイテレータという言い方は無い。
stringのconst_iteratorならstd::string::const_iteratorで宣言できる。

416 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:14:42 ]
newが失敗するのってメモリが足りない時以外にどんな状況が考えられますか?

417 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:27:57 ]
何をnewするかに拠る

418 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:42:35 ]
コンストラクタがエラー投げてることもある

419 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:46:41 ]
そもそもメモリが足りてなくても失敗するとは限らない。



420 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:52:06 ]
STLの出す例外一覧みたいなのってありませんか?

421 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:54:38 ]
これ格納すればあらゆる例外投げてくれるよ

struct Hoge{
Hoge(){throw new MyFavoriteException;}
};

422 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:14:20 ]
そうかなあ

423 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 02:41:10 ]
VC++でCGIを作ってます(ただの興味本位です
HTMLの文字コードはUTF-8にしたいので、文字列リテラルの文字コードをUTF-8にするために、
ソースコードをUTF-8で保存して、コンパイルしました。
すると「現在のコードページで表示できない文字を含んでます。Unicode形式で保存してください。」という警告が出て、
更に文法エラーが出てきてコンパイルできませんでした。
ソースコードにBOM付けてコンパイルしたら成功しましたが、出力された文字列は何故かShift_JISになってました。(VC++が日本語版だから?
文字列にUTF-8を使うことは不可能なんですか?

424 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 03:11:19 ]
ソースファイルの文字コードとプログラムの出力は別物
ソースはShift_JISでもUTF-8でもコンパイルすれば内容は同じ

で、出力をUTF-8にするためにはプログラムで文字列を組み立ててから
最後にUTF-8に自力で変換してやらなくてはいけない
UTF-8への変換はWin32APIを使う必要がある
たぶんIMultiLanguage2のあたりつかえばできると思うので検索して調べてみてくれ

あと、Shift_JIS以外の文字コードをstdoutに出力するなら、stdoutをバイナリモードに
する必要があるような気がするので、fprintfとかfwriteの前に以下のようなコードが必要かも
setmode( fileno(stdout), O_BINARY );

425 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:28:22 ]
2005以降なら、fopenなどでccs=UTF-8を付加すればいいのではと思う

426 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:00:07 ]
あー、fopenなんてここ何年も使ってないからすっかり忘れてたわ

427 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:06:36 ]
環境依存しない方法で変換するにはどうすればよかろうの?

428 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:15:48 ]
無理
環境ごとに#ifdefしまくるのが精一杯

429 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:45:03 ]
CGIやるならLinuxだろ
>>425
stdoutには使えないよね



430 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 15:38:25 ]
ソースが Shift_JIS なら、環境に依存してない。

431 名前:デフォルトの名無しさん [2009/03/20(金) 16:55:09 ]
Visual Studioで画面に複数のソースを表示させる方法ってありますか?
Source.cppとSource.hを横に並べて表示したいんですが、、






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef