1 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 21:36:23 ] エスケープシーケンスやWin32APIなどの環境依存な物でもOK。 ただしその場合、質問者は必ず、環境を書きましょう。 ※sageは禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.34【環境依存OK】 pc10.2ch.net/test/read.cgi/tech/1169039760/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
111 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:22:13 ] やめておいたほうがいい
112 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:26:56 ] >>108 >108の例だと、素直に a = 5; if (a == 5) ...; と書いた方がいい。 醜くなるだけでメリットは殆どない。
113 名前:デフォルトの名無しさん [2007/02/24(土) 17:34:40 ] では例えば if(関数式==1) else if(関数式==1) else if(関数式==1) else if(返り値=関数==1) のときの else if(返り値=関数)の関数にかかる時間を計りたいとき 関数の中で時間を計らないで関数の呼び出されてから終了までの 経過時間を計りたいときはどうすればいいですか? その場合 if(整数A=clock(),評価式) 整数B=clock(); 整数A-=整数Bでいけますか?
114 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:03:27 ] clockは経過時間ではなくCPU時間
115 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:05:28 ] デバッグ目的なら好きにすれば?
116 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:06:31 ] デバッグ目的ならプロファイラがいいと思うけど
117 名前:デフォルトの名無しさん [2007/02/24(土) 18:07:24 ] そのあとの経過時間によって処理を分けるので^^; なにか良い方法があれば教えてください
118 名前:デフォルトの名無しさん [2007/02/24(土) 18:08:46 ] >>114 1000で割れば経過秒数になりますよね?
119 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:10:51 ] CLOCKS_PER_SEC で割る
120 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:11:17 ] なんか激しく無謀なことをしている悪寒。
121 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:16:02 ] ゲームでPCスペックが低い時にフレームスキップするみたいなことをしたい訳だな
122 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:38:30 ] >>113 if(返り値=関数==1) こういうのって修正とかデバッグなどしにくいから俺としてはNG。 返り値=関数; if(返り値==1) 最初からこうならデバッグとか修正とかしやすい。 確かに行数増えるけど 今の俺はそんなこと気にしなくなった。 経過時間は以下みたいに巣りゃいいんじゃナインお st = 現在時間取得 返り値=関数 et = 現在時間取得 経過時間 = et - st
123 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:43:36 ] >>122 それ意味変わってね? ==のほうが優先順位高いよ。
124 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:43:38 ] >>122 >>113 をよく嫁
125 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:46:43 ] >>113 自体エスパーが必要だと思うんだが
126 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 18:47:50 ] 122じゃないけど、自分も同じことやってたよorz
127 名前:デフォルトの名無しさん [2007/02/24(土) 18:51:23 ] >>125 初心者なんですいません やってみたらできたんで今はclock()を使ってます
128 名前:デフォルトの名無しさん [2007/02/24(土) 20:30:32 ] >>96 1スレッドごとにプールを製作するようです したがって、同一スレッド内では再利用されるので問題ないのですが スレッドを閉じて新しいスレッドを生成すると 新しいプールが作成されて、古いプールが残るようなのです このプールがいつまでも残っているようで困っております 遅レスでもうしわけないです
129 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:32:31 ] CRTはソースあるんだから嫁よ。
130 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:57:20 ] >>128 「〜ようです」って、何見て言ってるんだ?
131 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:04:07 ] >>128 「〜ようです」って、何見て言ってるんだ?
132 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:12:55 ] >>128 「〜ようです」って、何見て言ってるんだ?
133 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:17:32 ] 何度言えば気が済むんだ?
134 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:18:15 ] malloc()/newの類はfree()/deleteしても一般にはOSにメモリを返さないという 超基本的事項を知っているか。 free()されたメモリはOSに返さず次のmalloc()で再利用するのがこうした 関数の基本的な戦略だ。 したがって、一般にプロセスの最初にガバッとmalloc()して大きな仕事をし、 その後free()してもプロセスのワーキングセットは大きいままだ。 これは俗に言う「メモリリーク」ではないのだが、 それが問題になるようであれば、自分でHeapAlloc()なりVirtualAlloc()なりを 用いてカスタムのアロケータを書いて、basic_stringstream<>の テンプレートパラメータとして渡してやるんだな。
135 名前:デフォルトの名無しさん [2007/02/24(土) 22:15:30 ] >>134 ありがとうございます やってみます
136 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:18:53 ] HeapAlloc/FreeだってOSに返さないで次のHeapAlloc呼出に再利用するぞ。 HeapDestroyでは流石にOSへ返すが。
137 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:35:45 ] Linux、UNIXあるいはMacで、OSの名称やバージョン情報を取得するにはどの関数を使えば良いですか? 例えば、FreeBSD 6.0、Vine Linux 4.0などです。 WindowsはGetVersionExなどで出来ました。
138 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:38:59 ] man 3 uname
139 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:02:10 ] OSはlinuxです。C/C++勉強してます。 ディレクトリの中のファイルの日付を取得したいのですが、 opendirとreaddir関数使いました。 struct dirent { ino_t d_ino; /* "inode number" of entry */ off_t d_off; /* offset of disk directory entry */ unsigned short d_reclen; /* length of this record */ char d_name[1]; /* name of file */ }; この中に日付無いのですが、どうしたらよろしいでしょうか。 よろしくお願いします。
140 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:12:23 ] >>139 つ[stat()]
141 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:37:57 ] >>140 レスありがとうございます。 d_nameを元にファイルのpath指定して、 stat()実行して、struct statを取得する感じですか。 なんか大変な感じします。(汗
142 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:55:57 ] >>141 つ[popen("/bin/ls -l", "r")]
143 名前:デフォルトの名無しさん [2007/02/25(日) 00:48:23 ] unsignedはどういう場合に使うべきなんでしょうか? 例えばループのカンターなんかは符号付きを使用すると思いますが、 実際の所は符号なしの方が意味的にはあっていると思います。 ビットシフトしたいとき、くらいしか思いつかないんですが、他にどんな使い道がありますか。
144 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:07:48 ] >>143 typedef unsigned char BYTE; size_tもunsignedだな ループカウンタとかunsigned付けるの面倒だよね。 size_tがunsignedだからもっと使っているはずだけど面倒。 負にならないもの全てunsignedとか面倒だからやらないんじゃない。 unsigned intならファイルサイズとか4Gまで表現できるけど面倒だからintで計算。 2GB以上はこのプログラム動きません。 たとえlong longとかあっても面倒だからunsigned long longでファイルサイズを表そうとも思わない。 俺の場合はね。
145 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:36:52 ] >>142 レスありがとうございます。 FILE *p; p = popen("/bin/ls -l", "r"); ネットで検索したところ、 こういう使い方すると、出力をファイルのように 扱うことが出来るみたいですね。 一行ずつ読み込んで、スペースで区切ると日付も取得できそうです。 コマンド実行->標準出力取得 って、やり方知らなかったので 大変勉強になりました。 でも、時間の型を考えるとやっぱり、今回は、stat()関数使用してみます。 ありがとうございました。
146 名前:デフォルトの名無しさん [2007/02/25(日) 17:45:57 ] 質問です。 CのソースからC++のソースを呼び出したいのです。 具体的には、 既にかなりの規模になってしまった拡張子.cのプログラムソースがありまして、 どうしても欲しい機能がC++で書かれているので、インクルードしたんですが、当然Cのソースからそれらを読むとコンパイルエラーになってしまいました。 hoge.cppと言うファイルにC++関連のプログラムを書き、何とかその関数をc側から読み出したいのですが インクルードすると、エラーが出ますし、どのようにすれば良いのでしょうか? 尚環境はVC++.NET 2003です。 よろしくお願いします。
147 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:55:14 ] EXTERN_C
148 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:58:33 ] >>147 レスありがとうございます。 extern "C" をつけた関数の中から、C++固有の機能(クラスなど)へのアクセスが出来ないのですが… 具体的には、error LNK2019: 未解決の外部シンボル とエラーが出ます。
149 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:00:08 ] ヘルプ
150 名前:デフォルトの名無しさん [2007/02/25(日) 18:02:01 ] ユーザーが入力した日時 (日付と時刻) を 設定ファイルに記録しておこうと思うのですが、 どういう形式で記録するのが一般的ですか? asctime 関数のような 「Sun Feb 03 11:38:58 2002」 のような形式は 気持ち悪いので採用したくないです。
151 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:02:58 ] >>148 そりゃC言語にない機能だからクラスを扱えないよ。 C++の方で呼べるようにしてあげないと。
152 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:06:46 ] >>151 間違えたかも。 >>148 C++の方では Cから呼べるようにクラスじゃない関数でextern "C"を付けて作る。 Cの方では extern "C"を付けた宣言をする。 これで呼び出せると思うけど忘れた。
153 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:11:24 ] >>151 確認したいのですが、extern "C"をつけるのはC++側の関数へですよね? main.c #include "hogehoge.h" int main(void){ int a=0; func(a); return 0; } hogehoge.cpp #include <vector.h> extern "C" void func(int a){ vector<int> v; } hogehoge.h #ifdef __cplusplus extern "C" { #endif void func(int a); #ifdef __cplusplus } #endif こういう形なんですが・・・。
154 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:18:52 ] >>150 設定ファイルを直接見る必要が無いなら timeで拾った値をバイナリで書き込めばいいんじゃないかな。
155 名前:デフォルトの名無しさん [2007/02/25(日) 18:20:35 ] 設定ファイルはテキストファイルと決まってしまっているんです。 見ることはあまりないですけど、たまに見ることもあるものです。
156 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:25:04 ] >>150 W3C-DTF
157 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:30:34 ] >150 rfc 3339
158 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:33:33 ] >>153 これで動くんじゃないの?
159 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:38:48 ] おいらのところではコンパイル・リンクできたけど?
160 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:51:23 ] >>155 time_tの整数値 yyyymmddhhmmss形式 y/m/d h:m:s形式 好きにしな。
161 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:00:51 ] >>150 どういう形式にするにしても、strftime関数が使えると思う。
162 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:12:08 ] >>150 一般的といいつつも日本人向けにしたいっていうことだよね。
163 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 20:11:34 ] W3C とか RFC の形式を採用してみます。 情報ありがとうございます。
164 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 21:51:02 ] フォルダ内の全ファイルを列挙するプログラムを教えて下さい
165 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 21:53:35 ] system("dir");
166 名前:164 mailto:sage [2007/02/25(日) 22:04:00 ] printfで表示するには?
167 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:06:14 ] そういえば昔、 system("dir > hoge.txt")して、fopen("hoge.txt","r")...みたいなことを やってた連中が居た。
168 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:11:16 ] >>164 環境依存 >質問者は必ず、環境を書きましょう。
169 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:13:08 ] >>167 十分アリだと思う dir /b ほうがイイと思うが
170 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:15:15 ] popenの事たまには思い出してあげてください
171 名前:164 mailto:sage [2007/02/25(日) 22:16:58 ] VisualC/C++ WindowsXP フォルダ内のファイル名をstd::stringの配列に格納したいのです
172 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:32:34 ] >>171 FindFirstFile FindNextFile あたりでどうかな
173 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:56:24 ] イベント オブジェクトが現在シグナル状態にあるかどうかを調べるには、 どうしたらいい? WaitForSingleObject を使うの?
174 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:03:35 ] そう、待機時間を0にすればいいと思う。
175 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:08:32 ] そうか、ありがと。
176 名前:デフォルトの名無しさん [2007/02/25(日) 23:11:26 ] >>172 使い方がわかりません
177 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:20:03 ] >>176 #include<windows.h> #include<stdio.h> int func1(void){ HANDLE h_find; WIN32_FIND_DATA file_info; printf("\n----- func1 -----\n"); h_find=FindFirstFile("*", &file_info); if(h_find==NULL) return 0; do{ printf("%s\n", file_info.cFileName); }while(FindNextFile(h_find, &file_info)==TRUE); FindClose(h_find); return 1; } int func2(void){ FILE *fp; char filename[FILENAME_MAX]; printf("\n----- func2 -----\n"); fp=popen("dir /b", "r"); if(fp==NULL) return 0; while(fgets(filename, sizeof(filename), fp)!=NULL) printf("%s", filename); fclose(fp); return 1; } int main(void){ func1(); func2(); return 0; }
178 名前:デフォルトの名無しさん [2007/02/25(日) 23:21:25 ] 基本的なことで申し訳ないのですが、 クラスのオブジェクトの配列を作るとき、 そのクラスに引数を持つコンストラクタを持たせることは出来ないのですか? 一つ一つコンストラクタ引数を指定する形でも良いので、配列化させたいのですが… 一つ一つ宣言した上でポインタの配列を作った方が手っ取り早いですか?
179 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:33:21 ] 諦めてvectorに収納したら?
180 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:38:28 ] >>178 引数を持つコンストラクタを持たせることは可能だが、 クラスの配列の初期化時にはデフォルトコンストラクタが呼ばれるので デフォルトコンストラクタが必須。 どーしてもデフォルトコンストラクタを持たせたくないのなら、 (スマート)ポインタの配列にするしかないな。
181 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:40:35 ] 配置newとかを使ってやる方法は無くもないが、最後の手段。 現在のC++ではどうしようもないから179-180の言うとおりにするしかない。
182 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:07:26 ] >>179 vectorに収納…というのは、どのような使い方ですか? vector<MyClass> c1(10); のような使い方だとデフォルトコンストラクタしか呼べませんよね?
183 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:09:25 ] reserveしてからpush_back!push_back!push_back!
184 名前:デフォルトの名無しさん [2007/02/26(月) 00:19:57 ] >>177 ありがとう フォルダとかディレクトリまで表示されるけどファイルだけに するにはどうするの?
185 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:22:20 ] >>184 1. それぞれのファイル属性を調べる 2. dir のオプションを調べる
186 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:22:41 ] >>184 少しは自分で調べろ。
187 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 12:34:03 ] 彼にとって調べるとは人に聞くことだけなのさ
188 名前:デフォルトの名無しさん [2007/02/26(月) 12:52:25 ] Win32って無くなるの?
189 名前:デフォルトの名無しさん [2007/02/26(月) 13:19:14 ] たとえば Windows のファイル ハンドルをカプセル化したような クラスを作った場合、 class File { private: HANDLE m_handle; public: ..... HANDLE GetHandle(void) { reeturn m_handle; } operator HANDLE(void) { return m_handle; } }; この GetHandle や operator HANDLE は const 関数にすべき?
190 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 13:26:32 ] 微妙だな。 MFCのCWndや、ATL::CWindowではconst付けているけど。
191 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:36:57 ] とあるツールのソースがあるんですが、拡張子が.vcprojというファイルがあることから Visual C++ で作られたと言うことが想像できるんですが、具体的にVisual C++ のどのバージョン で作られているのかを知るためにはどうやって調べたらいいのでしょうか?僕の持っているVisual C++ ではコンパイルに失敗して困ってます。
192 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:41:06 ] .vcprojファイルをテキストエディタで開くと VC++のバージョンが書いてあります
193 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:46:26 ] >>192 だっは〜すいません、ありがとうございます!
194 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:51:36 ] たびたびすみません。。 >ProjectType="Visual C++" >Version="7.10" とあったのですが、これは .NETになるんですかね? Visual Studioの .NETを使うべきですかね、それともVisual Studio2005でしょうか
195 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:56:03 ] >>194 7.0は2002 7.1は2003 8.0は2005
196 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:57:33 ] >>195 どもです!!
197 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 21:04:54 ] >>194 2003を使うのが手っ取り早いですが、2005でも問題ないと思います。
198 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:13:12 ] VC++ で質問です。 class A {...} class B: public A {...} class C { B* b; vector <A> a; } こんな感じのクラスを作成してて C::a のうちの一つの参照から C::b へポインタをコピーした場合 C::b を B* として適切に扱えるのでしょうか?
199 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:16:23 ] B *b = &a[0]みたいなことなら、出来ないと思うが。 追加したメンバ変数・仮想関数がないというような 限定条件を付ければ、reinterpret_castしても動くだろうけどさ。
200 名前:198 [2007/02/26(月) 22:28:22 ] ありがとうございます。 上でやりたいことを少し説明します。 まず A が基本フレームと呼ばれるセクタ単位のデータ構造を扱います。 B は基本フレームを拡張したフレームで基本的には仮想ではない関数郡です。 そして C はフレーム集合を保持するクラスです。 C では C::a のうち頻繁に利用するフレームを C::b として利用できたらいいのにと考えています。 今手元に開発環境がないのですが 適切に扱える C::b1 もあったりできない C::b2 があったりして悩んでいます。 ポインタを使わないでよい用法があればよいのですがありますでしょうか。
201 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:28:30 ] >>198 aをstd::vector<boost::shared_ptr<B> >型にでもしておけ。
202 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:02:25 ] douga.adult-55.com/movie_141/flvplayer.swf
203 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:57:44 ] >>183 なるほど! ありがとう!!
204 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 09:41:55 ] >>200 vector<A*>にしてBにキャストしたい要素はちゃんとBのインスタンスを格納しとけば普通にダウンキャストできると思うんだが キャストしたくないというならクラス別に配列分けるか、クラスの設計見直すか
205 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:24:13 ] >>198 俺の想像だけどさ 某ライブラリで struct Box { int x0,y0,x1,y1; }; が既にあるとする。 値の配列でライブラリから受け取ったり渡したりするから Box型の配列のまま変えられない。 受け取ったり渡したりするだけならそのままでいいが 頻繁に使う要素は、やはり不便だ。 そこで struct BoxEx : Box { int GetWidht() { return x1-x0; } }; みたいに便利なメソッドつきの無理やりキャストしたいって事か。
206 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:30:58 ] 根本的ですが、 for(i = 0; i < 10; i++){ if(i < 5) a(); if(i < 7) b(); if(i < 9) c(); d(); } と、 for(i = 0; i < 5; i++) a(); for(i = 0; i < 7; i++) b(); for(i = 0; i < 9; i++) c(); for(i = 0; i < 10; i++) d(); ではどっちが効率的ですか?
207 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:38:01 ] なんとなく前者の方が効率よさそうな気がするが、 パフォーマンスに関してはとにかく実測(して比較)しろ。それが鉄則だ。
208 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:46:02 ] そもそもabcdを呼び出す順番が違ってくるけど、それでいいのか。
209 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:47:13 ] たぶん後者のほうが効率いいと思うが そんな効率気にする必要があるのか 「これじゃぁ効率悪いよなぁ」と余計なとこまで考えてプログラミングがなかなか進まないのは罠
210 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:02:03 ] ファイルの書き込みについて、なんですが 追加モードで開いて書き込むと、一番最後に追加されます。 ”先頭に追加した文字列を作ってから書き込む以外” 先頭に追加する方法はあるでしょうか? std::ofstream ofs( "hoge.txt", std::ios::app ); seekで先頭にファイルのポインタ先頭にしても 末尾に追加されるみたいなんです。 よろしくお願いします。
211 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:06:05 ] 日本語の実装に難があるような気もするが、 要するに、ファイルの先頭行が最新の書き込みであってほしい、という話?