- 1 名前:デフォルトの名無しさん [2006/08/22(火) 09:21:31 ]
- はきだめのスレへようこそ
ここは、C/C++に挫折し、それにもかかわらず、C/C++やらなければならない者達がたむろするスレです。 なお、質問する人は回答はあまり期待しないでください。 前スレ:はきだめC/C++下級者の質問箱 pc8.2ch.net/test/read.cgi/tech/1124256027/
- 357 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 12:42:11 ]
- linuxなんですが質問です。
ただ単にファイルをコピーするプログラムと lsコマンドを自作したのですが、 もし、lsコマンドするフォルダに書き込み中のファイルがあったら、 「書き込み中」を表示したり、違う処理をしたいのですが、 書き込み中か調べる方法ってありますでしょうか? 考えてみたのですが ■lsコマンド側で解決方法 sleepを入れて容量の増減を調べる。 (これだと返ってくるまで、すごい時間が掛かってしまいます。) ■書き込むプログラム側の解決方法 ・元のファイルをA,コピー先のファイルをA'とすると 1、A'を作ります 2、ファイルディスクリプタ指定してA'をlockします 3、書き込みします。 4、lock解除 ・何かCOPYコマンドにオプション付けるとコピーが終わるまで 読めなくなるとないでしょうか。
- 358 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 13:40:39 ]
- >>357
357です。 なんか質問の内容がぼけてしまってますね。 ちょっと質問内容変更させてください。 書き込むプログラムは、自分で作ったもので 無い場合(lockしてない場合)でも書き込み中か 知る方法ってあるでしょうか? sleep使って調べると時間かかってします。
- 359 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 14:14:40 ]
- 「書き込み中」を、「コピープログラムがコピーを完了していない」状態と考えていいのかな?
それならば、コピー完了を知る手段は一般的にはないと思う。 解決策としては、こんなもんかなぁ…… ・コピー元ファイルのサイズを知り、コピー先ファイルのサイズと較べる。 ・コピー対象ファイルの終端の特徴を知り、コピー先ファイルの終端がその特徴に一致するか調べる。 #汎用性はないが、コピー対象が特定のフォーマットに従っているならそれなりに実用的か。 ・コピープログラムに完了を通知してもらう。 #通知方法は色々考えられる。signalでもいいし、ファイルでもipcでもいいだろう。 ・コピープログラムに一旦別の名前でコピーしてもらい、コピー完了後に目的の名前に変えてもらう。
- 360 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 19:59:29 ]
- >>359
何通りもありがとうございます! どれもすごい参考になりました。 上2つは、初心者の僕でもすぐにできそうです。 signalも勉強してみます。
- 361 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 18:25:45 ]
- どうして
static const int Size = 256; int a[Size]; for (int i = 0; i < Size; ++i) ではなく static const std::size_t Size = 256; int a[Size]; for (std::size_t i = 0; i < Size; ++i) の方が正しいの?
- 362 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 00:34:24 ]
- >>361
誰がそんなことを言ってたかは知らんが、その範囲を見ただけでは 上が間違っているとは思えないが。 下のほうは、size_tが64bitのような環境ではかえって無駄なことをしているだけのように思える。
- 363 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 03:39:31 ]
- >誰がそんなことを言ってたか
cppllから引っ張ってきたネタでしょ www.tietew.jp/cppll/archive/12803 話題を提供しつつ小遣いを稼ぐという視点は無かったな
- 364 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 03:51:10 ]
- cppll って、技術コミュニティとしてはもう崩壊してるよね。
C/C++ コミュニティで「昔の C コンパイラでも void を書くか書かないで・・・」に 突っ込みが入らないのは異常だろ。
- 365 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 05:34:30 ]
- >>362
そりゃ実装依存の話であって、誰が悪いかっつったら断りなしにsize_tを64ビット化した環境のが悪い気が。 もっとも、size_tは基本sizeofの返り値用の型だし、要素数表現に使われてるのはちょっと微妙なわけだが。
- 366 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 17:03:25 ]
- size_tを要素数や文字列長に使うのは自然だと思うけど。
無符号というのも意味的にスッキリしてるし。 ビット長はその処理系で必要な長さになってるんだから無駄と言うのも変な話だ。
- 367 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 02:07:17 ]
- 例えばmallocの引数型がsize_tなのは、
そのままsizeof演算子の結果に配慮したからで、 これを要素数倍するのは構わないのだが、 要素数を扱う型にくくってしまうのは、少々短絡的。 文字列長に使うのは、charがなんだかんだで バイト単位と認められてしまってるところから。 一番悪いのはlengthof演算子だのlength_tだのを 用意しなかったCそのものだと思われるが、 C++に世代が移ってループもイテレータで回す昨今、激しくどうでもいい。 俺も上のようなことは正直こじつけそのもので、自分でもまったく信じてない。 最近だとptr_diffなんかも64ビット化してるんで、 細かい目で見るとポインタの加減算もコストが嵩んでる。 無視するのがいいのだろうが、世の中ままならぬ。
- 368 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 11:23:59 ]
- そういやC99ではどうなん?
- 369 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 19:53:08 ]
- >>368 何の話だ?
- 370 名前:デフォルトの名無しさん [2007/01/06(土) 18:19:48 ]
- boolは1バイト消費するのですか?
- 371 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 19:48:59 ]
- かもしれないし4バイトかもしれない
- 372 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 08:06:00 ]
- >>370
STLなら1ビット
- 373 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 12:43:05 ]
- >372
はぁ?
- 374 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 15:18:41 ]
- >>373
std::vector<bool>のことを言っているんだろう
- 375 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 16:46:38 ]
- vector<bool> は領域節約のため特殊化する必要があるが
それは 1 bit を保証するものではない。
- 376 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 17:15:33 ]
- >>374-375
それって valarray<bool> のことじゃなかったっけ?
- 377 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 00:18:10 ]
- >>376
23.2.5 Class vector<bool> [lib.vector.bool] 1 To optimize space allocation, a specialization of vector for bool elements is provided
- 378 名前:デフォルトの名無しさん [2007/01/12(金) 17:01:28 ]
- 引数を受け取るコンストラクタがある関数オブジェクトを
渡す方法を教えてください。 struct Func { int data; func(int v) : data(v) {} int operator() (int i) { return v*i; } } template<typename F> int Test(F f, int i) { return f(i); } int main() { Func func(1); return Test(func, 2); } Test<F>(Func) に一致するものが見つからないと怒られます。 struct Func { int operator() (int i) { return i; } } こうすると通ります。なぜでしょうか?
- 379 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:02:51 ]
- func(int v) : data(v) {}のところはFunc(〜のtypoです
- 380 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:28:07 ]
- struct Func
{ int data; Func(int v) : data(v) {} int operator() (int i) { return data*i; } } まだ間違ってました。
- 381 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:33:04 ]
- >>378-380
通るじゃないか。コンパイラ何使ってんの?
- 382 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:36:23 ]
- うあれ?TurboC++です。もう一度やってみます
- 383 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:42:23 ]
- gcc3.4.2なら通るぞ。
- 384 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:42:26 ]
- すみません、再構築したら通りました・・・・
- 385 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 17:50:21 ]
- makefileをちゃんと書いてないんじゃないの?
ヘッダとの依存性とかを
- 386 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 22:00:14 ]
- C++で
vector<counter> v(dic.begin(), dic.end()); sort(v.begin(), v.end(), cmp); for (vector<counter>::iterator i = v.begin(); i != v.end(); ++i) cout << i->first << ":" << i->second << endl; return 0; の部分の機能がわからないのでどなたか解説してください
- 387 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 22:50:34 ]
- www005.upp.so-net.ne.jp/episteme/html/stlprog/
- 388 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 22:52:01 ]
- dicというコンテナからcounter型のvectorを生成し、
それをcmpを比較関数としてソート ソート結果を表示
- 389 名前:デフォルトの名無しさん [2007/03/02(金) 11:50:48 ]
- 1.0-1.0が0にならない理由を教えてくだすれ
- 390 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:02:14 ]
- 0になるだろ
- 391 名前:デフォルトの名無しさん [2007/03/03(土) 00:45:07 ]
- ポインタで
char *p; p = "ABC"; とした時の pは"ABC"を表すのですか? *pは何を表すのですか?
- 392 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 02:01:01 ]
- pは"ABC"の先頭アドレスをさす
*pは'A'を表す
- 393 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 03:11:04 ]
- >>392
ありがとうございます!
- 394 名前:デフォルトの名無しさん [2007/03/04(日) 18:58:20 ]
- C言語系のサイトでよく見るんですが
kitty on your lap とは何なのでしょうか? hello worldみたいなもの?
- 395 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:08:10 ]
- ぐぐっても…一番上には出てこないのか。
何番目かに引っかかる「ひざの上の同居人」ってゲームに そういうサブタイトルがついてたんだよ。 今では陳腐に見えるけど、当時はまだまだ新鮮なコンセプトで、 一部の猫耳好きから圧倒的な支持を受けた。
- 396 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:09:23 ]
- よく見るって…そんなの使ってるの一箇所だけだろ
- 397 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:12:02 ]
- さくら、ケロちゃんと同じくらいは使われてるんじゃね?
- 398 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:15:57 ]
- あのヲタクチックなサンプルコードさえなければ
あそこは最高のサイトだと思うんだがな…
- 399 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:20:44 ]
- 一昔前はプログラマ言ったらそんな奴らばかりだっただろ
- 400 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:37:35 ]
- 今もだけどな
- 401 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 23:04:36 ]
- pc11.2ch.net/test/read.cgi/prog/1166284393/842
に誤爆してしまったのでこちらに再投下します。 std::string変数を空にするのに、 var=std::string(""); とか馬鹿馬鹿しいことやってるんですが、普通はどうするんでしょうか。
- 402 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 23:13:33 ]
- >>401
var.clear();
- 403 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 23:22:07 ]
- あっあありがとうございます。
- 404 名前:デフォルトの名無しさん [2007/04/13(金) 09:12:41 ]
- nullと0の違いを教えてください
- 405 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:21:57 ]
- 0はただのゼロだが、nullは「意味を持たない」という文脈で使われ、
その実体は必ずしもゼロではない 例えば大抵の処理系では int *p=null; と int *q=0; は等価だが、 場合によっては q はメモリの「ゼロ番地」を指しており、 実際に読み取ることができる、ということもありうる
- 406 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:33:16 ]
- とすると、大抵の処理系では、0番地とヌルポはどのようにして見分けているのですか?
- 407 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:48:57 ]
- >>404
CにもC++にもnullなんてものはない。 NULLのことなら、NULLが0なんじゃない。0がNULLなんだ。
- 408 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:13:41 ]
- >>405
いくら「はきだめ」でも、嘘はいくない。
- 409 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:58:09 ]
- >>404
C言語の定義によればどんなポインターの型にも特別な値、 すなわち 「ヌルポインター」が存在する。このヌルポインターは 他のどんなポ インターの値とも区別可能で、「いかなるオブジェクトや 関数へのポ インターと比較しても等しくなることがないことを 保証されている」。 すなわちアドレス演算子&を適用した結果が ヌルポインターとなることもない。 C言語の定義によれば、ポインターを書くべきところに現れた定数0は、 コンパイル時にヌルポインターに変換される。すなわち初期化・代入・ 比較をするときに左辺/右辺のどちらかにポインター型の変数か式が 現れたときは、コンパイラはもう一方の側の定数0がヌルポインター を要求していることを理解し、適切なデータ型のヌルポインターの値 を産み出す。
- 410 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:12:14 ]
- C++Q&Aの2.24に
class Vehicle{ public: virtual void startEngine()=0; vietual ~Vehicle(); }; Vehicle::~Vehicle(){} 「そこから導出される派生クラスではstartEngine()メンバ関数を提供してはいけない。」 とあるんですが、これは使うなって事ですか? 「提供してはいけない」っていう言葉の趣旨がわからんのですが。
- 411 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:15:40 ]
- 多分
s/しては/しなくては/ ではないかと。
- 412 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:41:27 ]
- ですよね。
定義しないとエラーになるんで、これは一体・・・と思ってた所です。 訳者が監修扱いになってるんで、誤訳かなぁと思ってた所です。
- 413 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:45:54 ]
- デストラクタをvirtualにしないと駄目な理由がいまいちわかりません。
- 414 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:49:42 ]
- >>413
struct Base { // virtual ~Base() {} }; struct Derived : Base { Derived() : p(malloc(100)) {} ~Derived() { free(p); } private: void* p; }; { Base* x = new Derived; delete x; }
- 415 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:06:15 ]
- そこでshared_ptrですよ、と惑わしてみる
- 416 名前:デフォルトの名無しさん [2007/04/15(日) 08:19:41 ]
- 動的束縛(アップキャスト)を使った状態でのdeleteが駄目って事ですか?
- 417 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 09:42:37 ]
- float x=0.1;
exp(0.1*x)だとfloatなのにpow(0.1*x,2)だとdoubleになってしまうのは何故なのでしょうか? pow(float(0.1*x),2)とすれば、floatになってくれるのですが、expとpowで何が違うのでしょうか?
- 418 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 09:49:12 ]
- んなこたーない。
つーか、何を根拠にfloatだのdoubleだの言ってるんだ?
- 419 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 16:40:47 ]
- まずCかC++かはっきりさせろ
- 420 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 16:48:26 ]
- C++です。
- 421 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 17:25:36 ]
- で、根拠は?
- 422 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 17:33:13 ]
- cmathを使っている
- 423 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 18:57:11 ]
- ダメだこりゃ。
- 424 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 19:14:06 ]
- math.hを使え
- 425 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 20:25:31 ]
- なんでやねん。
- 426 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:33:50 ]
- >>417
0.1 * xは、0.1がdouble型だからxもdouble型へ昇格され、全体としてもdouble型になる。 expもpowもdouble型の引数を取るものが呼ばれるはず。 そうでないならコンパイラがおかしいはず。 そもそも418も指摘しているとおりで、417自身がどうやって調べたのかも怪しいが。 ついでにいくつか言うが、float型リテラルを作るには0.1fのようにfを後置しろ。 そんな関数スタイルのキャストでも(勿論Cスタイルのも)使うな。 ここではstatic_castを使え(Boostのimplicit_castもありだ)。
- 427 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:06:00 ]
- #include <windows.h>
#include <stdio.h> void main() { double a; a = 2/6; printf("%f\n", a); } VC6にて上のように単純に2÷6を計算したら0が出力されます。 0.33333・・・を出したいのですがどうすればいいのでしょうか?
- 428 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:48:59 ]
- >>427
a = 2.0 / 6.0;
- 429 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:54:24 ]
- >>428
ありがとー
- 430 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 20:52:34 ]
- 共用体が有効なときってあるの?
活用方法が見出せない。
- 431 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:11:20 ]
- >>430
確かに。職業PGだが、BigEndianとLittleEndianが混在した状況で 共用体が必要な場面は少ないと思う。実際使わないし。 組み込み系ならBEかLEかははっきりしているので union X { long a; char b[sizeof(long)]; }; とかやることがあるかも。
- 432 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 23:37:36 ]
- 領域をケチりたい場合にはよく使ったが、
最近はメモリに気を使う必要性が減ったから、 わざわざそういうことはしなくなったな。
- 433 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:02:36 ]
- union REGS は昔良く使われてたな。
今は struct sockaddr 関係で使われてたような。 sin_addrが内部の何かのdefineだった気がする。実装依存だろうけど。
- 434 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 11:00:22 ]
- >>430
であれば、使わなければよい。 実例としては、例えば「ICMPヘッダ union」でググるよろし。
- 435 名前:デフォルトの名無しさん [2007/04/21(土) 18:03:25 ]
- freeにNULLを渡した場合の挙動は仕様として決まっていますか?
また、一般的な処理系ではどうなっているでしょうか。
- 436 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:24:28 ]
- >435
標準CではfreeにNULLを渡したときは何もしない(だから渡してもよい) ことが保証されている。
- 437 名前:デフォルトの名無しさん [2007/04/30(月) 09:05:06 ]
- 32bit Windowsと64bit Windows両方で共通のコードを書きたいのですが、
int、doubleなど同じ変数型でも変数の桁数、精度がそれぞれで違うと思いますが、 これらの違いの一覧はどこかで公開されているのでしょうか? これらはOS依存なのでしょうか?それともコンパイラ依存なのでしょうか?
- 438 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 10:41:58 ]
- VC++なら、
たぶん求めてるのはこの中から見つけ出せると思う。 ttp://msdn2.microsoft.com/ja-jp/library/02c56cw3(VS.80).aspx
- 439 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 10:49:34 ]
- intってコンピュータが64bitなら64bitになるというものじゃないのですか?
- 440 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 11:00:43 ]
- IP64,LP64,LLP64とかでググレ
- 441 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 16:20:50 ]
- if文の条件としてキーボードでaが入力されたら〜ということを表したいのですが、
char c; if((c=getchar())==a) と言ったものを考えたのですが、 char c; if((c=getchar())=='a') に直すべきでしょうか。 非常に稚拙な質問ですが、よくわからないので助けてください。
- 442 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 16:26:29 ]
- >>441
正しくコンパイルできて動くほうを選べ。
- 443 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 17:07:24 ]
- >>442
ごめんなさい、今出先なのでコンパイルできる環境がないもので・・・。 どうか教えていただけませんか。
- 444 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 17:12:29 ]
- >>443
教えるも何も >>441 からでは判別不能。エスパーの召喚が必要だ。 コンパイルできない環境で知る必要も無いだろう。帰ってからゆっくり試せ。
- 445 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 19:00:38 ]
- >441
前者は、入力した文字を 変数 a の内容と比較している。 後者は、入力した文字が a という文字かどうかを判定している。 さあ、選べ。
- 446 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 01:23:21 ]
- >>445
トークンa 'a'という整数
- 447 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 07:40:59 ]
- >441
ついでにgetchar()の戻り値、文字リテラルの型はintだからchar c;ではなくint c; とすべき
- 448 名前:447 mailto:sage [2007/05/01(火) 07:42:04 ]
- >文字リテラルの型はint
Cの場合ね。
- 449 名前:デフォルトの名無しさん [2007/05/06(日) 19:11:31 ]
- 下記のファイルの3列目を読み込んで配列に格納したいです。
----- 1,2,3,4 5,6,7,8 9,8,7,6 5,4,3,2 ----- 数値はカンマで区切られています。 どうやったら a[0]=3, a[1]=7, a[2]=7, a[3]=3 というふうに格納できるでしょうか? a[0][2]=3, a[1][2]=7, a[2][2]=7, a[3][2]=3 でも構いません。よろしくお願いします。
- 450 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:12:13 ]
- 宿題は宿題スレへ
- 451 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:19:57 ]
- >>449
適当でいいのなら fgets で 3 列目まで読み込んでから sscanf(buf, "%d,%d,%d,%d", &a[0], &a[1], &a[2], &a[3]); みたいに。 真面目にやるなら strtok とか、コンマを strchr で探して切り捨てたりしてから、 atoi とか。
- 452 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:31:52 ]
- 一行読み込むごとに
sscanf(buf, "%d,%d,%d,%d", &dummy, &dummy, &a[i], &dummy); でいいじゃん
- 453 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:42:28 ]
- 普通に %*d つかえよw
- 454 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:45:02 ]
- あ、三列目ってそっちか。
- 455 名前:449 mailto:sage [2007/05/06(日) 20:47:58 ]
- >>451-454
とくに宿題ではないのでここに書かせてもらってます。 型は決まっているのでsscanfでできました。 ありがとうございました。
- 456 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:21:59 ]
- >>453
すっかり忘れてたわー
- 457 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:33:22 ]
- >>452
で、3カラム目だけ得る目的なのに4カラム目を空読みする理由は? #"%*d,%*d,%d"で充分。
|

|