- 1 名前:ぬ ◆NUNUK382Dk mailto:sage [2007/12/27(木) 20:32:47 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.45【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1197090562/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 321 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:28:04 ]
- 日本語をコマンドプロンプトや「メモ帳」で表示させたいです。
できれば背景が白い所に分かりやすく表示させたい。 マジレスきぼんぬ。
- 322 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:34:03 ]
- コマンドプロンプトの配色を「白地に黒文字」に設定
- 323 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:48:13 ]
-
#include <stdlib.h> system( ); で、適当に コマンドの命令だが、 color F0 とか #define color(x) printf("\033[%dm", x + 30); MS使用だったかも知れないが。 system("notepad.exe puni.cpp"); 詳しくは調べて
- 324 名前:304 mailto:sage [2008/01/06(日) 02:57:35 ]
- >>314
それを観て何となく納得出来ました。 キャストが初めて観るので、もうちょっと弄ってみます。 レスくれた皆さんありがとうございました。
- 325 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 05:36:09 ]
- 動的メモリの解放がいまいちよく判りません。
以下の(A)で生成した snow は、 (B)で問題なく解放されているのでしょうか? void procMain() { Snow ***snow = NULL; int i, j; // 生成 ←(A) snow = new Snow**[10]; for ( i = 0; i < 10; i++ ) { snow[i] = new Snow*[5]; for ( j = 0; j < 5; j++ ) { snow[i][j] = new Snow(); } } // 解放 ←(B) for ( i = 0; i < 10; i++ ) { for ( j = 0; j < 5; j++ ) { delete snow[i][j]; } delete snow[i]; } delete snow; } 下2つの delete が delete[] の様な気もしますが、 判る方がいましたらよろしくお願いします。
- 326 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 05:49:38 ]
- >>321
ファイルに出力した後にそのファイルを開けばいい。 fp=fopen("test.txt","r"); fprintf(fp,"hoge"); fclose(fp); system("test.txt");
- 327 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 06:32:15 ]
- >>325
new [] 使ってるから delete [] だろうね。 こういうのはややこしくなるから、 フラットな配列にして添え字は掛け算するのがシンプルでいい。 Snow *snow = new Snow[10*5]; for (int i = 0; i < 10; i++ ) for (int j = 0; j < 5; j++ ) snow[i*5+j].xxx(); delete [] snow;
- 328 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 06:40:43 ]
- >>321
>>318でエディションがPersonal以外ならOutputDebugString。イベントタブに出力される
- 329 名前:325 mailto:sage [2008/01/06(日) 08:55:02 ]
- >>327
レスありがとうございます。問題が解決しそうです。 どちらの delete でもコンパイルが通っちゃうから自信が持てない・・・
- 330 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 11:33:30 ]
- >>315
全然関係ないが、自分が一番最初に見たC++のサンプルはこれだ。 #include <iostream> int main(int argc, char *argv) { std::cout << "Hello World !" << std::endl; return 0; } ついでに、一番最初に聞いたクラスの説明は 猫も人もみな哺乳類なのです だ。
- 331 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 11:48:57 ]
- >>330
mainの引数もまともに書かないとは、悪いサンプルだな。
- 332 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:42:49 ]
- 俺はこれだった・・・
static char _main[] = { 0x81, 0x21, ...., 0x21 } PDPほにゃらら専用とかかいてあった
- 333 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:01:44 ]
- 最近Win32APIを使ったソフトを作り始め、色々とサンプルを見て回ってるのですが
多くがひとつの.cppファイルにまとまってるようなコードや、グローバル変数が多いソースで、 それを元にコードを打ち始めたらひとつのファイルに何千行というコードが入り、設定情報 をグローバル変数で共有するような気持ち悪いコードになってしまいました。 Win32を用いたコードでうまくOOPの概念を取り入れて、出来るだけすっきりとしたコードを書きたいのですが、 なにかアドバイスがあればご教授願います。
- 334 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:08:52 ]
- APIを直接呼ぶんじゃなくて、APIを包み込むクラスかしてから使う。たとえばファイル関係のクラスを作って外からAPIを見えなくする。
- 335 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:19:46 ]
- >>333
Win32API 直叩きじゃなくて、MFCや.NET Framework使ったほうが良いよ。
- 336 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:21:16 ]
- MFCや.NET Frameworkみたいなのを作りたいんだろ。
- 337 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:48:05 ]
- SDLとかwx使おう是
- 338 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:25:17 ]
- VCLも愛して
- 339 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:29:28 ]
- 暇だしVCLをC++に移植するか
- 340 名前:333 mailto:sage [2008/01/06(日) 16:30:59 ]
- 皆さん ご回答ありがとうございます。
どうやらMFCってのがうまくAPIを纏めているようなのでそれを使いたいと思います・・・
- 341 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:37:27 ]
- >>339
それ欲しい。是非に
- 342 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:58:12 ]
- >>339
文字列クラスには是非sprintfメソッドを
- 343 名前:デフォルトの名無しさん [2008/01/06(日) 19:06:34 ]
- C++のSTLであるvector型に関する質問です。
AAA, BBB, CCCという3つのvector型があって、 それらの要素AAA[index], BBB[index], CCC[index] (indexは全て共通の整数)を一括削除したいのですが、 下記のような冗長な構文になってしまいます。 消したい対象DDD, EEE, FFFが増えていくと、プログラムが非常に長くなってしまうのですが、 イテレーターaaa, bbb, cccを極力使用せずにコンパクトに記述する方法は無いでしょうか・ vector<double>::iterator aaa; aaa = AAA.begin(); vector<int>::iterator bbb; bbb = BBB.begin(); vector<string>::iterator ccc; ccc=CCC.begin(); for(int a=0;a<index;a++) { aaa++; bbb++; ccc++; } AAA.erase(aaa); BBB.erase(bbb); CCC.erase(ccc);
- 344 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:21:25 ]
- >>343
いや、少なくともfor文はいらなくね?advance使えば? というより、こういうのは思いっきりtemplateの出番だと思うんだが。
- 345 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:24:03 ]
- >>343
そもそもデータ構造を struct Hoge { double d; int n; string s; }; vector<Hoge> hoge; とできないの? ちなみにvector<>::iteratorはランダムアクセスできるので AAA.erase(AAA.begin()+index)でOK
- 346 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:29:51 ]
- >>344
>>345 ありがとうございます。 既にクラスの階層構造を何段か組んでいるので、これ以上階層化するのは避けたいと思いまして。 最後の1行の場合、indexがint型だからコンパイルエラーにならないでしょうか?
- 347 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:35:34 ]
- >>346
RamdomAccessIteratorなら加算がオーバーロードされてるからおk
- 348 名前:343 mailto:sage [2008/01/06(日) 19:35:53 ]
- まずはこの方法でためしてみます。
AAA.erase(AAA.begin()+index)
- 349 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:36:13 ]
- >>347
重ね重ねありがとうございますm(_ _)m
- 350 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:52:25 ]
- #include <stdio.h>
から始まる基本関数で 何か表示する物はあるんでしょうか。
- 351 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:02:22 ]
- Random Access Iteratorだから
AAA.erase( AAA.begin() + index ); BBB.erase( BBB.begin() + index ); CCC.erase( CCC.begin() + index ); でいいんじゃね?
- 352 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:04:09 ]
- printfとか簡単な関数でもいいんですが。
コンパイラの設定でブリーダーができません。
- 353 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:05:49 ]
- 質問はコミュニケーション言語日本でお願いします。
- 354 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:08:28 ]
- これからテンプレートの勉強を始めようと思っているんですが
テンプレート:クラスみたいなもん STL:テンプレートのあつまり みたいな認識ってまちがっていますか?
- 355 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:10:15 ]
- >>354
間違ってる
- 356 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:35:34 ]
- 関数テンプレートの使いどころというか選択についてです
気にしなくて良いレベルなのだと思いますが 引数にaとbを取り、大きな方を返す関数テンプレートがあったとします。 この場合、大きい値を返す関数のint用のものfloat用のもの・・・・といった具合にたくさんの関数を用意するのとでは どちらが良いのでしょうか? ここで関数テンプレートを使うとなんというかもったいないというか処理が無駄に大きく膨らんでいる気がしてならないです 今すぐに想像はできないのですが、ここでいう大小を比べる程度のものでなく、もっと大きなものならば関数テンプレートが有効だとは思います
- 357 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:36:29 ]
- 大事なところがorz
つまり処理数が多いものならば関数テンプレートを利用した方が良い、などの明確だったりしないまでの決まりのようなものはあるのでしょうか?
- 358 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:38:53 ]
- >>356
何で? ぜんぜんもったいなくないと思うけど。 呼び出されてる型のものだけが具体化されるから 効率的だと思うし、実際std::maxテンプレートはあるじゃない。
- 359 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:40:57 ]
- >>356
>int用のものfloat用のもの・・・・といった具合にたくさんの関数を用意する これが面倒じゃないと思うならがんばれば?
- 360 名前:356 mailto:sage [2008/01/06(日) 20:41:07 ]
- >>358
ありがとうございます そうですよねorzもったいないと感じている自分がおかしくてならないです 積極的に使っていこうとおもいます
- 361 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:03:26 ]
- だから、std::max()を使えってば。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:06:46 ]
- >>361
356は例えばで言ってるだけだろ
- 363 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:14:07 ]
- >>360
おかしくないです。出てくるコードの大きさを見積もることは必要なことです。
- 364 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:17:24 ]
- >>356
>int用のものfloat用のもの・・・・といった具合にたくさんの関数を用意する 保守性を考えるとこの考え方はは良くない。 バグがあったら全部直さなきゃいけないし、直し忘れが出てくる可能性がある。 ステップ数が少ない場合でも、バグが出るときは出る。 こういう場合を想定してテンプレートが出てきたわけだし。
- 365 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:00:30 ]
- templateを使うとexeがバカでかくなるって言うアホがいるんだよな
俺も会社でよく言われるんだわ
- 366 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:04:31 ]
- そういやテンプレートを使う機会が無い
- 367 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:07:18 ]
- 仮にばかでかくなったとして、どのぐらいのサイズなら問題だと感じるんだろう……
- 368 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:13:00 ]
- 環境によってさまざまだろうね。
組み込み環境なら結構致命的になりかねん気もするけど、それならC++にするメリット少ないし。 一般的なソフトウェアならCDやDVDに入りきらなくなったらとかじゃないのかな?
- 369 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:13:48 ]
- 仮にテンプレート使わなかったとしても、
似たような物作るわけだしな。
- 370 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:34:36 ]
- >>365
昔のコンパイラは知らないけど、信じがたい。 具現化されるのは自分で呼び出してるものだけだから。 インライン化とか別の理由で大きいんでない? それともテンプレート使わなくても、もともとバカでかく なるプログラムかもしれん。
- 371 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:43:46 ]
- >>370
大きなクラスを丸ごとテンプレートにしたんじゃないか?
- 372 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:44:17 ]
- オブジェクトファイルのサイズだけ比較すればずっと増えるんじゃね?計ったことないけど
- 373 名前:デフォルトの名無しさん [2008/01/06(日) 23:01:42 ]
- VC++2008express editionでコンソールアプリケーションを作れるか実験してみた結果
できませんでした。 どうしたもんでしょう。
- 374 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:04:36 ]
- それだけじゃ、何が起こったのかサッパリ
- 375 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:07:35 ]
- C言語の質問なんだが。
持たせたファイルポインタからファイルネームを得たいんでファイルポインタからメンバーを見てみたら tmpfnameってのがあったけど、このtmpfnameってそのファイルの名前と考えておk? あと、これって環境依存?
- 376 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:12:35 ]
- 環境依存
- 377 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:12:59 ]
- FILE構造体の中身は処理系依存
- 378 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:15:56 ]
- >>376-377
ありがとうございました。 別の方法で管理することにします。
- 379 名前:デフォルトの名無しさん [2008/01/06(日) 23:36:51 ]
- C言語の質問です
main関数で用意したdouble *xを別の関数の中でmallocを使ってサイズを決めることと数値の代入を行いたいのですが上手く出来ません どのようにすればいいでしょうか 以下は自分で作ったものの該当部分だけを抜き出し簡略化したものです #include<stdio.h> #include<stdlib.h> void f(double *); void main(void) { double *x; f(x); free(x); } void f(double *a) { a=(double *)malloc(sizeof(double)*3); if(a==NULL){ printf("メモリ確保失敗\n"); exit(1); } a[1]=2.0; }
- 380 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:40:52 ]
- ポインタを関数に渡しているといってもポインタという値を渡してるだけ。
そのポインタを関数の中で書き換えてもmainじゃ影響されないから引数消して返り値使うとか、 ポインタのポインタを引数でとるかのどっちか。
- 381 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:41:45 ]
- >>379
そりゃ、上手くいかんわ。 void f(double **); void main(void) { double *x; f(&x); free(x); } void f(double **a) { *a=(double *)malloc(sizeof(double)*3); if(*a==NULL){ printf("メモリ確保失敗\n"); exit(1); } *a[1]=2.0; } 全く試してないけど、これでどうよ?
- 382 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:01:18 ]
- >>381
俺も全く試してないけど >*a[1]=2.0; なんか嫌な臭いがする。 優先順位、これでよかったっけ?
- 383 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:04:54 ]
- >>382
(・A・)イクナイ!!
- 384 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:07:09 ]
- *a[1]は*(a[1])だったはずだな。
やりたいのは(*a)[1]か?
- 385 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:12:12 ]
- >>378-384
どうもありがとうございます。 >>381を>>384に変更したものを使えば上手くいきました
- 386 名前:デフォルトの名無しさん [2008/01/07(月) 00:38:10 ]
- for(i=0;i<N;i++){
fscanf(fp,"%lf %lf",&m[i],&n[i]); } ↑の状態でビルドして実行するとエラーが出る for(i=0;i<N;i++){ fscanf(fp,"%lf %lf",&m[i],&n[i]); printf("%f %f\n",m[i],n[i]); } 次に↑のように書き換えてビルドして実行するとエラーが出ない for(i=0;i<N;i++){ fscanf(fp,"%lf %lf",&m[i],&n[i]); } その後で↑の状態に戻してからビルドして実行すると最初と同じなのにエラーが出なくなっている こういったことが起こるのはどのような理由でしょうか
- 387 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:45:18 ]
- すべてのソースを貼り付けるとか
エラーの内容を書くとか そういう努力をしないとエスパー以外答えられないと思うよ
- 388 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:44:26 ]
- エスパーしてみる。
ファイル内に改行があってfscanfが2回目以降読み込みに失敗している。
- 389 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:26:27 ]
- 多分初期化忘れ。エラーが出ない方はたまたま
- 390 名前:デフォルトの名無しさん [2008/01/07(月) 05:17:35 ]
- >384
優先順位って難しいね. みんなちゃんと覚えてるの?
- 391 名前:デフォルトの名無しさん [2008/01/07(月) 06:18:31 ]
- 別スレから誘導されて来ました。
改めて、こちらで質問させて下さい。 まず、フラッシュメモリにデータを書き込みます。 そしてそのデータが書き込まれたセクタ?(アドレス?)を取得する方法ってありますでしょうか?
- 392 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 06:35:09 ]
- 誰だよ、誘導したのwここでもスレ違いだろw
少なくともCレベルじゃメモリアドレスしかわからんだろうから無理じゃね? OSレベルの話になるね。
- 393 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 07:00:26 ]
- >>392
そうですか… かなり難しいようですね… 環境は、Win32(XP Pro) + VC++ なんですけど…
- 394 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 07:04:39 ]
- DOS 時代なら INT 25H(アブソリュートディスクリード)使えば何とかなると思うけど・・・。
- 395 名前:デフォルトの名無しさん [2008/01/07(月) 07:22:43 ]
- Inside Windows NT Disk Defragmenting
technet.microsoft.com/en-us/sysinternals/bb897427.aspx デフラグ用のAPIではだめかい?
- 396 名前:393 mailto:sage [2008/01/07(月) 07:56:40 ]
- >>394-395
助言ありがとうございます。 がんばって調べてみます! とりあえず、395さんの紹介して頂いたページを見てみたいと思います。
- 397 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 08:07:54 ]
- >>390
自信ない使い方をするときに括弧使えばいいだけだろ。
- 398 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:10:50 ]
- >>390
考えるのがめんどくさいので、常に括弧付。 可読性も向上。
- 399 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 13:25:53 ]
- >>398
int a = (b + (c * d)) - e;とか書くの? 却って可読性が落ちる希ガス。
- 400 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 13:27:27 ]
- lispに慣れてればどうということはない
- 401 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 14:24:29 ]
- >399
煽りとしてはどうかなあ?
- 402 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 14:34:46 ]
- 素朴な疑問だろ?
- 403 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 14:43:02 ]
- 左結合か右結合か、考えるの面倒だよね。
だからきっと、 a = (b = (c = 0)); って書くんだよ。
- 404 名前:デフォルトの名無しさん [2008/01/07(月) 14:43:30 ]
- >>399
ぶっちゃけa = b + c * d - eよりはよっぽどわかりやすい
- 405 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 14:45:20 ]
- 俺は
a = b + (c * d) - e だな。 順読み以外は括弧付ける派。
- 406 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 14:46:15 ]
-
a = c * d + b - e
- 407 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:13:45 ]
- b,c,d,eの順序に意味がある場合の話だろうjk
- 408 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:20:45 ]
- 質問があります。
今C言語を勉強しようか考えている所なのですが これを学ぶ事によって、ボンバーマンのようなゲームは作成可能でしょうか? また作れると仮定しまして、C言語よりボンバーマンのようなゲームを作るのが 簡単な言語はありますでしょうか? もしよろしければ教えてください、お願いします。
- 409 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:29:34 ]
- >>408
英語を学ぶことによってマクベスを書くことは可能かどうか、 英語で書くより簡単な言語はあるかと聞くくらい、無意味だ。 こっちにでも逝け。 初心者のためのプログラミング言語ガイド Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/
- 410 名前:デフォルトの名無しさん [2008/01/07(月) 15:52:46 ]
- >>408
どんな言語でも何かを作る時apiや構文等の知識は必要となり 簡単ていう概念はとっぱらったほうがいい。 どんなもんでもある程度確立した物を作るのはめんどうなもんだ。
- 411 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 16:06:29 ]
- 誘導ありがとうございます。
簡単と言う発言は軽率でした 言語にも向き不向きがあるかと思ったので、 より作りやすいと言う意味でした それでは誘導先に行ってきますので、 こちらでの質問は取り下げさせてください
- 412 名前:デフォルトの名無しさん [2008/01/07(月) 22:33:27 ]
- 藤原紀香相手に中だしSEXするよりは簡単だろう
- 413 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 22:52:17 ]
- >>412
おっさん乙
- 414 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 01:33:25 ]
- C++の標準I/Oライブラリについてですが、
basic_istream<>やbasic_ostream<>はbasic_streambuf<> を利用してバッファ入出力を行ってますが、継承はして ないですよね?basic_istream<>やbasic_ostream<>は コンポジションとしてbasic_streambuf<>を保持してるのですか?
- 415 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 02:45:31 ]
- .jpgとかをいじるのは古いプログラムなんですかね。
- 416 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 02:47:09 ]
- >>414 そうともいう。
- 417 名前:デフォルトの名無しさん [2008/01/08(火) 03:01:57 ]
- 入力がEUCで漢字コードを検索したい場合、どうやればいいんでしょうか?コンパイラはシフトジスが基本みたいです
- 418 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 03:45:00 ]
- >>415
「いじる」ってのをどういう意味で使ってるのかよく分からんが JPEG<=>ビットマップの変換は古いというか普通ライブラリを使う
- 419 名前:デフォルトの名無しさん [2008/01/08(火) 04:01:05 ]
- int iskanji(int c)
{ return (0xA1 <= c && c<=0xfe) }
- 420 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 05:28:11 ]
- std::vector<int[10]>みたいなことをやりたいのですが、ベクタのベクタにするか、
メンバ変数に配列を持つ構造体のベクタにするしかないんでしょうか
- 421 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 05:53:22 ]
- >>420
int[10]は型じゃないっしょ?
|

|