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


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

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



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

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

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

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

2 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:01:03 ]
 ○  >>1 乙 もうお前に用はない
 く|)へ
  〉   ヽ○ノ
 ̄ ̄7  ヘ/
  /   ノ
  |
 /
 |


3 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 00:41:55 ]
          ◤◥◣
  ▂  ◢◤▀〓▲▂▐         ▂ ▪ ▂▄▅▆▇■▀▀〓◣▬ ▪ ■….
 ▍ ▼     ◥◣▼        .▂▅■▀ ▪ ■ ▂¨ ∵▃ ▪ ・
  ▀▍ ◢◤     ▅ ▐◣   ◢◤ ◢▇█▀ ¨▂▄▅▆▇██■■〓◥◣▄▂
    ▍  ▅ ◢■     ▍ ■ ▂▅██▅▆▇██■〓▀▀ ◥◣ ∴ ▪ .
  ▐   ▂   ▐◣ ▐▅▇███████▀ ▪ ∴ ….▅ ■  ◥◣
   ▀◣▂  ▀◥▅▆▇████████▆▃▂  ▪ ■▂▄▃▄▂
     ◥◣▄▂▄▅▀   ■  ¨ ▀▀▀■▀▀▀ ▪ ■ ∴‥

↑はUnicode対応のブラウザで見るとコーヒーを吹くプーさんが表示されますが、これを
1.正しく画面に表示する
2.テキストファイルに出力し、再入力してから画面に表示してもやはり正しく表示される
3.出力されたテキストファイルをUnicode対応のテキストエディタやブラウザで表示しても正しく表示される
ようにするC++のコードを書いてください。

多くの人にはとても難しいです。

4 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 01:13:38 ]
MFC使えば簡単だけど
C++標準でやろうとすると死ぬな。

5 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 01:21:12 ]
またあやふやなコトを…

6 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 04:23:11 ]
たとえAAであってもディズニーキャラはモザイク掛けといた方がよくね?

7 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:10:11 ]
wchar_t s[] = L"ハート♡髑髏☠DANGER☣";
wcout << s << endl;
wcout.clear();
wcout.imbue( locale( "Japanese" ) );
wcout << s << endl;

んー。動かん。
codepad.org/60naQUV5


8 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:32:14 ]
バイナリモードでやったら

9 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 16:00:44 ]
long double を使う必要が出たため、
Turbo C++(2005?)で long double を double へ変換するDLLを作成し、
VC2008EEで呼び出そうとしていたところ、関数コール部分で以下のエラーが出ました。

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

dumpbin でチェックしたところ、関数名はあっているようでしたし、
defファイルを作成し、lib /machine:i386 /def: で lib を作ってリンクもしています。
何が問題なのでしょうか?

10 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 16:34:37 ]
download.microsoft.com/download/e/3/c/e3c1a451-1882-49fe-86a8-e25680f6c46c/JIS_Unicode_guide.pdf

↑を読んでみたけど、マイクロソフトでさえUnicodeを正しく表示できないのにワロタ。



11 名前:9 mailto:sage [2009/09/18(金) 18:00:13 ]
追記です。
libを使用せず、LoadLibrary()を使用しても同じ結果でした。

12 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:12:55 ]
とりあえず呼び出し規約は一致させてるのか

13 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:32:41 ]
指定したURLのHPのソースコードを取ってくることは可能でしょうか?

14 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:36:59 ]
>>13
HTMLソースって意味なら環境依存の方法で可能なことが多い。


15 名前:9 mailto:sage [2009/09/18(金) 18:38:19 ]
>>12
libリンクの方だと__stdcallではVCの方でリンクエラーが出ていました。
そのため、libリンク方式の方は指定していません。
LoadLibrary()の方は__stdcallを指定しています。

16 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:38:32 ]
>>14
C++標準関数でありませんか?
調べると、.NETやMFCなら沢山出てくるのですが・・・

17 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:39:39 ]
>>13
ブラウザがやってることと同じことをやるだけだな。
HTTPプロトコルに従った手順(テキストベースの送受信)でやりとりして得るだけの話だし

18 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:41:43 ]
>>16
言語レベルでそこまでの範囲を想定してないから、標準では無い。

非標準で、その手の面倒をみてくれるライブラリは あるかもね

19 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:46:01 ]
>>15
呼び出し側の 宣言が狂っているんじゃないの?

lib式)
 プロトタイプ宣言の呼び出し規約定義はちゃんとあわせてるのか? (マンゲリング抑制も含めて

LoadLib式)
 GetProcAddress() の戻りをどうキャストして使ってるんだ?

20 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:52:50 ]
>>17,18
ありがとうございます。
もう少し調べてみます



21 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:53:58 ]
>>16
C/C++標準は、socket(ネットワーク)を扱えるものは何一つ無い。
どこぞでも書いたが、(Win環境ならwgetを入手して)
system("wget")が一番楽かもしれない。

22 名前:9 mailto:sage [2009/09/18(金) 19:28:43 ]
>>19
双方同じヘッダをインクルードして使用しています。

ヘッダ
#ifdef _USRDLL
# define __PORT __declspec(dllexport) /* DLLを作る場合 */
#else
# define __PORT __declspec(dllimport) /* DLLを使う場合 */
#endif
#ifdef __cplusplus
extern "C"
{
#endif
__PORT double __stdcall LONGDOUBLE( void* p );
#ifdef __cplusplus
}
#endif

LoadLib式は以下の通りです。

HMODULE h;
FARPROC p;
double (*func)( void* );
h = LoadLibrary( "longdouble.dll" );
p = GetProcAddress( h, "LONGDOUBLE" );
func = (double (*)(void*))p;
変数 = (int)func( long doubleが入っているメモリへのアドレス );
FreeLibrary( h );

23 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 19:31:53 ]
VC++2008と32bitXPを使っているのですが、
64bitのOSにするとint等のビット幅以外になにか変わるところはあるんでしょうか

24 名前:9 mailto:sage [2009/09/18(金) 19:35:40 ]
>>19
>マンゲリング抑制
とは何のことですか?
ググってみましたがよくわかりませんでした。

25 名前:9 mailto:sage [2009/09/18(金) 19:41:18 ]
>>19
double (__stdcall *func)( void* ); 
に変更したところ、問題なく動作しました。
ありがとうございました。

26 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:26:23 ]
>>23
むしろ、intの大きさは変わらない。
変わるのはポインタ・ハンドル・L/WPARAM・LRESULT・size_tなどの大きさ。
これにより、アドレス空間1プロセス4GB(うちユーザが使えるのは2-3GB)という制限が大幅に緩和される。
あと、x86→x86-64だとレジスタの増加で高速化が期待できる。

>>24
extern "C"のこと。

27 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:34:55 ]
>>26
あれ、そうなんですか。もう少しよく調べてみます
ありがとうございました

28 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:56:11 ]
多数派はLP64なのにVC++だけは、なぜかLLP64


29 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:59:00 ]
Windowsプログラミングだと、LRESULT,WPRAM,LPARAMが64bitになっていてはまる場合もある。
LPARAMをlongに代入できないとか。

30 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 22:13:44 ]
GetWindowLongPtr使うと警告出されたりとか



31 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 22:19:51 ]
>>30
それは/Wp64をオフにすればいいだけ。
もう64ビット対象にばんばんビルドして確かめてくれってことで、
VC++ 2008では/Wp64オフが初期設定となっているから、それにならえばいい。

32 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 06:41:02 ]
入出力マニュピレータ endlとか
なんで引数どころか()まで省略できるの?

33 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 07:21:21 ]
>>32
それらを書くか書かないかで意味が違う。省略できているわけじゃない。

34 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 09:48:11 ]
詳しく

35 名前:デフォルトの名無しさん [2009/09/19(土) 10:46:35 ]
int a,b,c,d,e;の中にランダムに整数が入ってるものとします。
この5つの中でいちばん数が小さい変数を見つけるにはどうやるのが良いでしょうか?

36 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 11:00:13 ]
>>35
4回比較する

37 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 13:16:18 ]
暗黙のアップキャストを抑制して、明示的にキャストした場合のみ
アップキャスト可能にすることって可能でしょうか?

38 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 13:23:29 ]
暗黙のアップキャストを抑制する必要性自体がほとんどないし、できなかったと思う。
具体的に必要な場面を示せばなんか方法はあるかもしれない。


39 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 13:32:40 ]
>>37
private 継承して BaseType& Base() を用意するとか?

40 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 14:17:48 ]
class A;
class B : A;

func(A);
func(B);

templateの絡みで、こんな感じに親クラスと派生クラスを
オーバーロードした同名関数で処理したいのですが。



41 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 14:27:49 ]
>>40
ん?それなら普通にオーバーロードで済まないか?

A, B の例でいいから、今できてるところまでひととおりのコードを貼ってみるといいかもね。

42 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 14:36:15 ]
class Hoge {・・・};

int main(void)
{
Hoge h;

h; // ※

return 0;
}

※をエラーに(できればコンパイル時)することはできますか?

43 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 14:50:46 ]
0除算でもしてみては

44 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 14:53:30 ]
>>42 無理

45 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 15:15:22 ]
C/C++は評価した値を捨てる事ができる言語だからな
Pascalとは違う

46 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 15:22:16 ]
>>41
オーバーロードが用意されていればキャストされないのですね。
すみませんでした。

47 名前:ぅゅ ◆e6.oHu1j.o mailto:sage [2009/09/19(土) 23:39:19 ]
>>42
Cだとそういうの警告でるよ
エラーだすの実行時でいいならboolオペレーターっていうのがある
operator bool(){
printf("era-");
return 0;
}

48 名前:ぅゅ ◆e6.oHu1j.o mailto:sage [2009/09/19(土) 23:40:47 ]
あ、すまん勘違い
それじゃboolオペレーターの実行されねーや

49 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 23:42:18 ]
>>47
その警告に C と C++ は関係ない。
その operator bool を Hoge に宣言しても h; では呼び出されない。

50 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 02:04:05 ]
>>42
のコードって規格ではどういう動作するように決められてるの?無視するだけ?



51 名前:ぅゅ ◆e6.oHu1j.o mailto:sage [2009/09/20(日) 08:03:51 ]
>>47borlandでは.cのとき警告

52 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 10:15:49 ]
Carクラスがあるとします
Car car1;
とオブジェクトを作成するのと
Car* pCar;
pCar=new Car;
とメモリを確保するのと、どういう短所長所があるのでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 10:27:03 ]
前者はスコープを抜けるときにオブジェクトが自動的に削除される。そして生成廃棄が速い
後者は不要なオブジェクトを手動でdeleteする必要がある。そして生成廃棄が遅い。
なのに、なぜ後者が有るかというと、生成と廃棄のタイミングを自由に操作できるから。



54 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 10:31:24 ]
>>53
なるほど、ありがとうございます
グローバル変数ほど長く使いたくない場合に使うんですね

55 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:05:14 ]
templateの>>を離して書くのがだるいんですがこれはもうどうしようもないんですか?

56 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:37:34 ]
そんなやならdifineでも使ってみては


57 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:42:31 ]
>>55 c++0xで正式に実装される。
VC8でもできるから、できるコンパイラを使えばいい。



58 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:53:26 ]
struct base
{
virtual void hoge(){・・・};
};

struct sub : public base
{
virtual void hoge(){・・・};
};

int main(void)
{
sub s;
s.hoge();
return 0;
}

↑見たいな感じに書いても仮想関数の検索コストって掛かるもの?
静的に決定できるからコストかからないと思うんだけどどうなんでそか?

59 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 12:00:13 ]
>>58
コンパイラによるとしか

60 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:49:23 ]
>>58
VCで確認したら、sub::hogeを直接コールしてた。



61 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:38:50 ]
>>58
BCC(ECC6.2.0)もsub::hogeを直接コールしてた
最適化が糞なコンパイラですらこれだから大抵のコンパイラは
出来るだけ静的に解決出来る所はするのではないか

62 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:45:10 ]
細かな部分で挙動がクソなだけでBCCの最適化は普通に良いよ

63 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:48:48 ]
gccも直接sub::hogeしてた

64 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:07:54 ]
みんなテストさんくすこ

65 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:26:08 ]
というか直接呼ばないようにコンパイルする意味が分からないってレベルだしな
まぁでも、確実な根拠があると一応ちょっと安心かな

66 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:35:53 ]
>>58
VCでこうだと、テーブルジャンプになってた。

sub* s = new sub();
s->hoge();



67 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:38:31 ]
そりゃそうだろw

68 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:41:20 ]
>>67
これ、最適化したらまずいの?

69 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:58:52 ]
それの場合、最適化するコンパイラは無さそうだけどなぁ
sが実際に保持している型をコンパイルタイムで追尾しなきゃならないから、処理が
重くなる割には性能向上が全く期待できない(レアケースすぎるから)
規格上、確実にs->hoge()の時点でsのポイントするインスタンスがsub型と確定可能
かどうか、というのもちょっと確信は持てない(newの辺りが特に)
まぁ実験するのは面白いかも

70 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:13:46 ]
ちょっと見た目では、sub::hoge()以外が呼ばれる余地がないと思うけど、
なんか落とし穴でもあるのかね。
最適化されないってのは。



71 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:28:56 ]
>>70

new が例外起こす場合を考慮すると、s == NULLもあるから
sub::hoge()は呼べないのでは。

つーか new がオーバーライドされてたらもはや何でもあり。


72 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:29:17 ]
ポインタが実際に指している型を静的に追尾するメリットは、>>66のようなコードが
ごく僅かに最適化されるくらいだと思う。
実用的にはメリット皆無に限りなく近い予感。コンパイルも遅くなるだろうし。

73 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:30:09 ]
>>71
new で例外が発生すれば s への代入も、それに続く s->hoge() の呼び出しも行われない
から、それは関係ない。

74 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 18:34:06 ]
需要が無いor真面目に書けば最適化不要、って場合は最適化を期待しない方がいい

75 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:29:57 ]
s->hoge();の時点でアップキャストもダウンキャストもなく、
正しくsubのインスタンスを指してることをどうやって保障するかじゃない?
人間には簡単に分かる事もコンパイラだと100万行のコードでも同じ動作しなきゃならんと思うとかなり面倒な気がする

76 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:48:59 ]
vc8だとs.hogeはインライン展開、s->hogeは仮想呼び出し

intel c++だとs.hogeもs->hogeもインライン展開された。


77 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 20:19:27 ]
流れと無関係にsubという識別子が気になるPerl経験者であった

78 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:23:40 ]
Intelコンパイラさんマジパネー

79 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 23:58:38 ]
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9957.txt

ロープレのイベントなんかで、使う分だけ
メモリを確保したいのですが、こんな感じでいいでしょうか。

メモリは正しく確保できているか、
通常の配列より容量を削減できているかあたりです。

80 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:14:25 ]
>>79
これならほとんどの場合において配列だけの方がメモリ効率はいいよ
開発効率をあげたいなら STL を使うといいよ

目的が、作ることより勉強優先っていうなら苦しむといいよ



81 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 00:40:41 ]
void hogehoge(double x0, double x1, double dx, const fugafuga& fuga)
{
for(double x = x0; x < x1; x += dx) fuga(x);
}

これを

template <class Iterator>
void hogehoge(Iterator begin, Iterator end, const fugafuga& fuga)
{
for( ; begin != end; ++begin) fuga(*begin);
}

という形にしたいんですけど新しいIterator作る以外になにか手はありますか?

82 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:09:43 ]
>>80
ありがとうございます。

メモリは、3つのイベントを作るとすると、
配列だと作った数に関係なく 8 * 32 バイト、
ポインタだと 4 * 32 + 8 * 3 で少なくできると思ったのですが。
(4はポインタのサイズ、8は構造体のサイズ、
32はイベントを作れる最高の数)
また、構造体のサイズは、実際のゲームではもう少し大きいです。

その効率の悪さについてググってみたのですが、
連続な領域でない事が関係しているんですかね。

stlはc++の機能みたいですね。
ヒントになる事もありそうなので勉強してみます。

83 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:42:11 ]
>>81
配列や標準コンテナに入れて呼び出すとかでいいの?

84 名前:デフォルトの名無しさん [2009/09/25(金) 15:00:42 ]
ttp://msdn.microsoft.com/ja-jp/library/cc411004.aspx
にあるSendInput関数という関数を使いたい場合は、
SDKというものをインストールしないとダメなのでしょうか?

85 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 16:08:07 ]
環境による

86 名前:デフォルトの名無しさん [2009/09/25(金) 16:47:39 ]
staticメンバ関数から
同じクラスの中にある他のメンバ変数(静的か非静的かは問わず)を
操作することはできないのですが
どうしても操作したい場合には
どういった方法をとることができるのでしょうか?

87 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 16:53:15 ]
引数で渡せばおk

88 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 17:17:10 ]
staticメンバ関数じゃなくすればOK

staticメンバ関数は特定のインスタンスに対する操作ではないので、
インスタンスごとに存在するメンバ変数にアクセスできないのは当然です。
どのインスタンスのメンバ変数にアクセスしたいのかを指定するには、
(1) 通常のメンバ関数にする → this で指定されるインスタンスにアクセスする
(2) 引数でインスタンスを渡す → 引数で指定されたインスタンスにアクセスする
(3) 別の変数(グローバル変数やstaticメンバ変数)でインスタンスを指定する
のどれかの方法で行います。

89 名前:デフォルトの名無しさん [2009/09/25(金) 17:54:25 ]
aaa型のabcという構造体を1.txtに書き出しました。
1.txtの内容をabcに代入するにはどうやればいいんでしょうか?

#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp ;
fp = fopen("1.txt", "w");

struct aaa{int a;int c;};
aaa abc;
abc.a=500;
abc.c=555555;
fwrite( &abc, sizeof(aaa), 1, fp ) ;
return 0; }


90 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 17:56:05 ]
fread()



91 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 17:58:04 ]
>>81
その例なら、イテレーターとしてint*が渡せるね

92 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 18:03:07 ]
>>89
出来ればfwrite()、fread()を使う時は"wb"や"rb"で開いた方がいいよ
ランダムアクセスする時にcooked modeだとズレが邪魔をするOSがある

93 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 19:37:49 ]
>>90>>92
ありがとうございました。がんばってみます

94 名前:79 mailto:sage [2009/09/25(金) 21:44:42 ]
すいません、別スレで質問したいと思います。
ありがとうございました。

95 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 21:56:16 ]
>>89
じゃないんだけどバイナリエディタで読むと
23 7A 08 00
で、
00 08 7A 23
の順で読み込めばいいんでしょうかー?

96 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:10:12 ]
リトルエンディアンだとそう。
abc.cの部分についてだよね

97 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:11:14 ]
今のLvだとそこは深く考えなくていいと思うよ。
単純にfreadとfwrite使えばいい。

98 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:14:06 ]
>>96>>97
そうです、ありがd

99 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:55:41 ]
fprintf(fp,"%lf %lf %lf %lf %lf %lf %lf %lf",a,b,c,d,e,f,g);

cout << a <<" "<< b << setw(1) << c <<" "<< d <<setw(1)
<< e <<" "<< f << " " g << endl;
な感じのタイプ数が多いのを
cout << a << b << c << d << e << f << g << endl;
こんな具合に書きたいんですが、何かいい方法ありませんか。


100 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:58:31 ]
>>99
オペレータをオーバーライド








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

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

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