1 名前:デフォルトの名無しさん [2011/12/23(金) 22:51:14.19 ] C言語の*入門者*向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 93 toro.2ch.net/test/read.cgi/tech/1322866566/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 154代目 hibari.2ch.net/test/read.cgi/tech/1322562648/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
511 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:31:27.24 ] >>508 今調べたのにそんな言い方するから恥をかくんだよ?
512 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:42:08.29 ] -7÷3 って、 0 あまり -7 であるべきだろ。
513 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:55:02.19 ] またバカが沸いた。
514 名前: ◆QZaw55cn4c mailto:sage [2012/01/01(日) 22:56:23.57 ] >>511 え?>>500 を読むかぎりどう考えても >>508 の解釈(正剰余)しかあり得ないんですけれども‥‥‥。 じゃあ >>500 はどう解釈するんですか?具体的に記述願いますね。 あと>>511 文中の「?」の使い方がよくわからないんですけど。まさか語尾上げを表意しているとかですかね?最近のはやりですか? ISO/IEC 9899:1999 6.2.5.9 A computation involving unsigned operands can never overflow, because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type. ISO/IEC 9899:1999 6.5.5.6 When integers are divided, the result of the / operator is the algebraic quotient with any fractional part discarded. 88) 88)This is often called ‘‘truncation toward zero’’.
515 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:58:12.64 ] 語尾に?を付けるのは、自分の言う言葉に自信がないから
516 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:58:57.80 ] 500を読む限りって... 全部読んでないのかよ。
517 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:59:09.00 ] 元を。
518 名前: ◆QZaw55cn4c mailto:sage [2012/01/01(日) 23:07:41.00 ] >>516-517 え?>>514 に元とやらの関連部分を丸々コピペしたのですが、これだけで判断もできないの? そちらの >>500 の解釈を具体的によろしく。 しまった、これはわすれてたなあ。 ISO/IEC 9899:1999 6.5.5.6 If the quotient a/b is representable, the expression (a/b)*b + a%b shall equal a.
519 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:12:15.48 ] >>>511 文中の「?」の使い方 子供に言い聞かせるときのオカンの口調であろ
520 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:17:27.90 ] コテハン名乗ってる割には、些細なことにうるさいやつだな。 コテ禁止スレが多いのもわかる。
521 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:19:52.99 ] >>509 のページを読んでもよくわからなかったんだけど 規格にも書いてある「代数的な商」ってどういう意味?
522 名前: ◆QZaw55cn4c mailto:sage [2012/01/01(日) 23:30:01.06 ] >>521 -7 ÷ 3 ならば、普通に電卓等で割り算すると、-2.3333......。これが代数的な商でしょうね。文脈からの推測だけれども。 で、C99 ならば、-7 / 3 = -2 したがって、C99 の余りは = -7 - ( -2 * 3 ) = -1 でこれしかない。 でもね。C99 の剰余演算子の定義と、規格の中で使われている単語「剰余」、英語では modulo は違うと思うんです。違うとしないと意味をなさないですから。
523 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:30:41.42 ] >>521 代数の定義そのままだと受け取ったけど。 語弊があるように言えば、数字を変数を使って処理しきれる数学の事じゃ。
524 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:39:33.47 ] そもそも「割り算」ってなんなのよってことだ。 「−7個の林檎を3人で分けたら1人分はいくつになりますか?」 答えは「ゼロ」だよ。
525 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:40:47.50 ] >>520 こいつは都合が悪くなるとすぐコテ外して自演するから性質が悪い。 レベルも低いが。
526 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:41:05.13 ] 逆算できるようにしましょうねって事じゃないの?
527 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:43:12.14 ] >>522 ダリぃ。 そこの記述が曖昧でもわざわざ型変換とルール変える奴いねーから。 んな瑣末な解釈は入門スレで長々グダグダやってんな。 JISの6.3.1.3でも読んで今日は寝ろ。 起きてもまだ気になるなら、あとはガチ規格スレでやれ。
528 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:45:23.66 ] (-7 % 3) + (-7 / 3) * 3 の評価結果が -7 に戻ればオケ ってことかの
529 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 23:59:26.20 ] 負債の概念が無いとか何処の途上国人だよて話しだ
530 名前: ◆QZaw55cn4c mailto:sage [2012/01/02(月) 00:10:03.48 ] >>527 それが、C99 では % の意味が変わっている(正確には今まで処理系依存だったのが規格にのった)んですね。その点を教えてもらったことは >>509 に感謝。 >そこの記述が曖昧でもわざわざ型変換とルール変える奴いねーから。 確かに教えてもらった場所 ISO/IEC9899:1999 6.3.1.3.2 に的確に書いてますね。納得したので寝ます。おやすみなさい。 >>528 たぶん。
531 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 05:01:21.25 ] トイレに行きたい気分をcで表すとどうなりますか?
532 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 05:02:34.27 ] 表さない これが真理
533 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 05:30:49.63 ] ccc
534 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 07:04:20.35 ] >>532 大変参考になりました >>533 死ね
535 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 07:53:48.16 ] cね
536 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 04:19:01.01 ] >>534 答えはCCだな。
537 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 04:36:02.85 ] 乱数で出した数の重複を防ぐ以下のソースを書いたんだけど、重複が出てくる。 何が悪いの? srand((unsigned) time(NULL)); /* 乱数の初期化 */ for (i = 0; i <= 5; i++) { ra = rand() % 42 + 1; /* raに1〜42を入れる */ if (ra == r[i]) { /* raとr[i]が同じなら */ i--; } else { /* それ以外なら */ r[i] = ra; } }
538 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 04:40:48.45 ] i未満の全ての要素とraを比較しましょう
539 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 04:46:25.76 ] >>537 そりゃ今まで出した乱数を全くチェックしてないからな チェックしてるのは今から入れようとしてる場所だけ
540 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 05:41:29.69 ] >>538 ,539 数値が入ってないものと比べることになってたのか。 ありがとう。数値が入った後で比べるようにする。
541 名前:デフォルトの名無しさん [2012/01/03(火) 17:55:34.69 ] C言語で皆が元気になるモリモリプロジェクトを作成するにはどうしたらいいですか?
542 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 17:58:32.52 ] Hello,World!から始めて 四則演算、配列、条件分岐(if,switch)、繰り返し(for,while)、関数の宣言は一通りできるようになったし、 スコープ、ポインタ、構造体もある程度理解したつもりなんだが 未だにソフトウェア開発とかゲーム制作とか夢のまた夢 どうしたらその段階にいけるの
543 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 18:03:34.51 ] 向いてないから死ね
544 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 18:17:33.29 ] >>542 既に出来るよ。 ブロック崩しとか、インベーダー風ゲームとか、 とりあえず作ってみなよ。 多分できるから。
545 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 18:46:12.37 ] 初めて作ったゲームは課題で作ったcursesでのブロック崩しだったなぁ
546 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:25:55.19 ] >>542 ゴリ押しでいいならそのままでもできる 良い設計を心がけようとするとあと数年かかる
547 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:26:58.59 ] 良い設計が学べる書籍やWEBサイト教えてください
548 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:33:49.59 ] >>542 こういう事ができるソフトが欲しいとか、 そういうのを考えて作ってみる。
549 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:53:33.96 ] >>547 まずは自分で探す事を学べ
550 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:29:06.78 ] >>547 人さまのソースを見る。 オープンソースで規模のあるコードは、それなりに上手くできている。 ソフト開発って、作りたいものを作ればいいだけ。 こんなフリーウェアほしいってのを、自分で作ればいい
551 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:34:08.11 ] 夕飯の時間に食卓に座れば食事がやってくる そうじゃないとダメだしそうあるべきなんです
552 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:38:14.65 ] 良い設計なんかできなくてもソフトウェア自体は作れる 作りたいものが何もないのが致命的なんだよ 作りたいものさえあれば馬鹿でも経験が無くても必死に調べて 試行錯誤しながらも完成にこぎつけるんだよ
553 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:43:40.75 ] なんだ、致命的って。 死ぬのか? お前、死ぬのか?
554 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:43:57.89 ] うざい
555 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:48:39.32 ] どうやら屍のようだ。
556 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:52:39.14 ] >>553 は既に死んでいる
557 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 22:07:02.74 ] >542 標準ライブラリ以外のライブラリ使用に挑戦。 グラフィック描画やパッド入力など。
558 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 03:49:45.36 ] とりあえず socket.h かWinSock じゃね?
559 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 04:17:16.63 ] >>542 OSをWinと想定するが、Win32API覚えると良いよ 面倒くさかったらC#で.netでもいいけど 文法と規格に準じた標準ライブラリ覚えたんなら、環境依存のライブラリの使い方覚えれば、もぐら叩きやじゃんけん位はすぐに作れる
560 名前:デフォルトの名無しさん [2012/01/04(水) 04:19:18.69 ] Google電卓機能だと -2%10=8 -2%-10=-2 -7%3=2 -7%-3=-1 C言語もこうであって欲しかった
561 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 07:23:27.43 ] なんでC言語ってアロー演算子使うんだろう? 型判ってんだからドットでいいじゃないか
562 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 07:43:59.00 ] なんでこの板ってアスペばっかなんだよ(´・ω・`)
563 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 08:41:41.86 ] >>561 そりゃポインタと実体は全然別物だからね。 別に無理してC使わなくていいんじゃね?
564 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 12:40:06.22 ] >>561 それだとプログラマの方が混乱するだろ
565 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:54:39.57 ] いやならアロー演算子を使わなければいいじゃない
566 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 15:50:29.55 ] ______ r〃〃〃 f7⌒ろ) l‖‖‖ || f灯 |‖‖‖ || | | |儿儿儿._」⊥厶 〔__o____o_≦ト、 . i / ⌒ ⌒ ヽ ) !゙ (・ )` ´( ・) i/ | (_人__) | \ \ `ー' / / ー- 、 . ,ィ(⊆≧リ≦⊇)〃 / rク\ . / | ̄r少}¨ ̄〃 / /′ ヽ 〃 l | l| | l| 〃 / / └ヽ / l |l | |l/″ / ! 厂 \ く, Y ! l」fレト! / | / 1 丿 | | 丿} じ’ / | / | / l | `¨ / レ′ | 真の思考停 (在位 2009年9月16日〜2010年6月8日) 民主朝の初代考停、言行不一致、虚言、脱税、 そして外交において巨大な負の遺産を築いた。
567 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 20:37:13.22 ] 日本を滅亡に導いた人物である
568 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:04:46.44 ] judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0004 この問題なんですが、 ideone.com/iUQaM この解答でWrongAnswerと出ます 間違っている部分がさっぱりわかりません 宜しくお願いします
569 名前:デフォルトの名無しさん [2012/01/04(水) 21:52:51.59 ] ユーティリティーって何? 参考書見てたら、ユーティリティーの作成ってあった。
570 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:55:43.36 ] utilityは便利な小道具の詰め合わせみたいな感じ
571 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:33:19.98 ] は?
572 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:39:55.70 ] >>569 なんで辞書引かないんだ? なんでググらないんだ?
573 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:42:23.31 ] 辞書をひくごとに寿命が1分縮んでいることに気が付かないのか
574 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 22:47:55.78 ] ググれば分かることを聞いてるのは、コミュニケーションをとりたい寂しいPG。 冷たくすんな。
575 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:06:58.54 ] ソープにでも行けよ
576 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:17:38.87 ] 邪悪です!
577 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:24:25.57 ] >>568 入力例と出力例が一致しただけじゃ足りない場合がよくあるよ
578 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:34:39.32 ] >>568 四捨五入の処理入ってる?
579 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:35:55.52 ] >>578 実際にやってみればわかると思うが、この問題で引っかかるとこはそれじゃなかったよ
580 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:41:42.03 ] >>579 あ、わりい。
581 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:43:16.72 ] >>577-579 四捨五入はprintfがやってくれるので問題ないみたいです +0/-0が関係あるのかと思って-0を+0にしたりしてみたんですがダメみたいですね
582 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:48:12.56 ] >>581 1入力(a b c d e f)で1出力ではなく、複数入力に複数出力では? sample inputは2個の入力に対して、2個の出力を表示してる。
583 名前:デフォルトの名無しさん [2012/01/05(木) 00:08:20.53 ] 今までunsignedの付く変数型を使ったことが無かったので,試しに使ってみたのですが… 例えばunsigned int型なら,負の値は使用できないはずですよね? int a = 100; int b = 200; unsigned int c = a - b; とすると,cの値がマイナスになるのでエラーでも出るのかと思ったのですが… 問題なく c = -100 と出てしまいました.何故でしょうか? codepadの仕様…? codepad.org/GRuREQwD
584 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:10:36.33 ] >>583 c = %u
585 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:12:14.37 ] そりゃ "%d" って指定したら、そうなるだろうね。
586 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 00:45:29.78 ] >>581 あれ、-0だとおもってたが、、、他に特に特殊な処理は入ってないけれど
587 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:35:53.02 ] >>568 おそらく+0 -0の問題なんだろう if(x==0)x=0;としたら通った +0.0とするのでは対応できないということか
588 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:52:39.42 ] いや、別途-0を+0にするロジックを入れてるっぽい書き方だけどね。>>581
589 名前:デフォルトの名無しさん [2012/01/05(木) 08:16:34.51 ] 以下のスレの >>69 に、 hayabusa2.2ch.net/test/read.cgi/morningcoffee/1325667058/69 「マイナスになる可能性がないものは全部unsignedにしろ」というレスがあったのですが、 これの理由って何なのでしょうか。
590 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 08:37:51.07 ] >>589 面倒だからそこは読んでないけど、負の値を扱わない保証がある場合はunsignedの方が値域を広く取れる。 しかし、どの道入門レベルでは細かいことまで気が回らないだろうから signedで適切に組めるようになることを目指した方がいいかもしれない。 つまり、「マイナスになる可能性がないものは全部unsignedにしろ」と言うよりは signedかunsignedかは適材適所、I/Fをよく考えて決めるべき。
591 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 08:58:50.47 ] 大きさが足りないとかビット演算したいとかの理由がなければ常にsignedでいいよ unsignedだと小さな負の整数が大きな整数に変わっちゃうから下限チェックで問題が発生する
592 名前:デフォルトの名無しさん [2012/01/05(木) 09:10:05.79 ] ありがとうございます。
593 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:21:45.78 ] codepad.org/5x9nSXmX ↑の18行目以下の解説をどなたかお願いできませんか?
594 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:30:49.93 ] >>593 へったくっそなコードだな。
595 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:34:57.22 ] >>593 解説: なんでstrstr()使わねーの? 馬鹿じゃね? strstr()相当を作る課題なら、match_str()の中でstrlen()も使ってないのに strncmp()使っている辺りが大間抜け。
596 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:53:16.74 ] C言語今から勉強しようと思うんだけど初心者にオススメの本教えて下さい
597 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 16:57:44.09 ] >>596 www.amazon.co.jp/dp/4756100716
598 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:38:08.09 ] >593 ファイル開いて 一行づつ読み込んで 検索する文字列を探す。 標準文字列関数の動作の勉強かと思ったがstrncmpは使ってるんだよなぁ。
599 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:26:00.00 ] #include <stdio.h> #include <string.h> #include <process.h> #include <stdlib.h> int main(){ printf("%s",INPUTj3g()); return 0; } char INPUTj3g(){ char filename[30]; int strnum; printf("Input file name>");scanf("%s",&filename); strnum = strlen( filename ); if(filename[strnum-1] != 't'){ filename[strnum-4] = '.'; filename[strnum-3] = 't'; filename[strnum-2] = 'x'; filename[strnum-1] = 't'; filename[strnum] = '\0'; } return filename; } 上のような文字列を返すユーザ関数を作りたいのですがどうすればよいのでしょうか?
600 名前:デフォルトの名無しさん [2012/01/05(木) 19:30:22.16 ] どうすればよいのだおうね
601 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:35:05.64 ] >>599 突っ込みどころがありすぎ ここで訊くより入門書読んだほうが早いレベル
602 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:45:58.68 ] >>599 INPUTj3g()を抜けた時点でfilenameは使えなくなるから、呼び出す側で用意したほうがいいかな。 あとそれだと3文字以下の入力のときに、バッファの外に書き込むことになるね。 最後の文字が't'以外のときに強制的に".txt"に書き換える仕様もどうよって感じ。 #include <stdio.h> #include <string.h> #include <process.h> #include <stdlib.h> int main(){ char filename[100]; printf("%s",INPUTj3g(filename)); return 0; } char INPUTj3g(char* filename){ int strnum; printf("Input file name>");scanf("%s",filename); strnum = strlen( filename ); if(filename[strnum-1] != 't'){ filename[strnum-4] = '.'; filename[strnum-3] = 't'; filename[strnum-2] = 'x'; filename[strnum-1] = 't'; filename[strnum] = '\0'; } return filename; }
603 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:56:44.36 ] >>602 ありがとうございます、ではもし拡張子が入力されていなかったら プログラムで付け直させるにはどうすればよいでしょうか?
604 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 20:02:53.96 ] > filename[strnum-4] = '.'; > filename[strnum-3] = 't'; > filename[strnum-2] = 'x'; > filename[strnum-1] = 't'; > filename[strnum] = '\0'; strcpy(filename-4,".txt"); 遅くてもこう書き直したい。
605 名前:604 mailto:sage [2012/01/05(木) 20:07:18.24 ] >strcpy(filename-4,".txt"); 俺ってバカ… strcpy(&filename[strnum-4],".txt");
606 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 20:08:11.48 ] >>603 if (strchr(filename, '.') == NULL) { /* '.'がないから拡張子が入力されていない */ strcat(filename, ".txt"); /* 拡張子を追加 */ } ↑みたいな感じでいいと思う。 ファイル名をフルパスで入力されてディレクトリに'.'が含まれている場合とか には対応できない。 バッファの最大長を超える長さで入力された場合とか、まじめに作るとけっこう面倒。
607 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 20:17:54.08 ] >>604-607 ttp://codepad.org/ZnGnm8NK エラー 19: 移植性のないポインタ変換(関数 INPUTj3g ) まだダメみたいです・・・orz
608 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 20:21:42.98 ] >>607 INPUTj3g()は char INPUTj3g(char* filename)じゃなくて、 char* INPUTj3g(char* filename)だった。
609 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 20:25:07.59 ] >>604-607 >>608 できました、ありがとうございます!
610 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 21:30:03.51 ] マツコ 「K-POPはパクリ」 ikura.2ch.net/test/read.cgi/news/1325760245/ ★マツコ「韓国人でてけ!日本が嫌だったら!出てけ」 3 ikura.2ch.net/test/read.cgi/news/1325765534/ ★マツコ「韓国人でてけ!日本が嫌だったら!出てけ」 3 ikura.2ch.net/test/read.cgi/news/1325765572/ ★マツコ「韓国人でてけ!日本が嫌だったら!出てけ」 2 ikura.2ch.net/test/read.cgi/news/1325763378/ ★マツコ「韓国人でてけ!日本が嫌だったら!出てけ」 ikura.2ch.net/test/read.cgi/news/1325760720/ ↓そーす c3413260.r60.cf0.rackcdn.com/20s00002017.jpg c3413260.r60.cf0.rackcdn.com/20s00002018.jpg c3413260.r60.cf0.rackcdn.com/20s00002019.jpg c3413260.r60.cf0.rackcdn.com/20s00002020.jpg c3413260.r60.cf0.rackcdn.com/20s00002021.jpg c3413260.r60.cf0.rackcdn.com/20s00002028.jpg c3413260.r60.cf0.rackcdn.com/20s00002027.jpg c3413260.r60.cf0.rackcdn.com/20s00002023.jpg c3413260.r60.cf0.rackcdn.com/20s00002024.jpg
611 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 03:45:21.11 ] 全ての行にコメント書くとさすがにくどい?
612 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 03:51:15.19 ] >>611 意味があればいいけど。
613 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 04:39:17.13 ] >>611 よほど全編に渡ってトリッキーなやり方してるコードとか 説明のためのサンプルコードとかなら分かるが 基本的にはコメントの内容を疑ってしまうかな… どんなコメントなんだい?
614 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 08:08:08.98 ] 何故エラーが出るかわかりません。 replace = strstr(ptemp,"テスト(XXXX年XX月分)"); sprintf(monthfilename,"テスト(%c%c%c%c年%c%c月分)",monthbuf[0],monthbuf[1],monthbuf[2],monthbuf[3],monthbuf[4],monthbuf[5]); strncpy(replace,monthfilename,sizeof(monthfilename)); fputs(ptemp,fp2);←ここで書き込みアクセス違反でエラー monthfilenameには201110っていう文字が入ってる。 fp2のファイルポインタはfopenした時にNULLじゃなかったから正常なファイルポインタのはず。 どんな原因が考えられますか?
615 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 08:54:42.66 ] >>614 >monthfilenameには201110っていう文字が入ってる。 monthbufの間違いだよな? それにしたって変数名からするとmonthfilenameでfopenしそうなもんだが ”テスト(2011年10月分)”って名前のテキストファイルつくんの? もうちょっとコード出そうよ。
616 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 08:58:57.38 ] >>614 ファイルのオープンモードの間違い ポインタの指している先が無効 ここに書いてない部分が変なアドレスを書き換えている
617 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 09:03:06.00 ] >>615 monthbufの間違いです。 わかりにくかったですね。 char monthbuf[30]; char monthfilename[50]; //日付書き換え用ポインタ char *replace; //月取得 puts("指定した月をyyyymmddの形式で入力して下さい"); scanf("%s",monthbuf); sprintf(monthfilename,"%s.html",monthbuf); fp2 = fopen(monthfilename,"w"); replace = strstr(ptemp,"テスト(XXXX年XX月分)"); sprintf(monthfilename,"テスト(%c%c%c%c年%c%c月分)",monthbuf[0],monthbuf[1],monthbuf[2],monthbuf[3],monthbuf[4],monthbuf[5]); strncpy(replace,monthfilename,sizeof(monthfilename)); fputs(ptemp,fp2);←ここで書き込みアクセス違反でエラー ptempには大量の文字列が入っています。 replaceのポインタはNULLじゃないことは確認してます。 わかりにくいですが、monthfilenameはただ使いまわししてるだけです。 よろしくお願いします。
618 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 09:07:15.82 ] >>617 sizeof が問題だな 終端文字を破壊してるんだろう おかげで読んじゃいけない部分を読んだ
619 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 09:16:39.45 ] >>618 ありがとうございます sizeofって終端文字を破壊するんですか? よく意味がわからないんですがどうやって解決すればいいですか? strlenにしてもだめでした。 とりあえずやりたいのは、 ptempの中にある「テスト(XXXX年XX月分)」という文字列を ちゃんと数字の入ったものに置き換えたいんです。
620 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:01:35.06 ] >>619 「sizeofが終端記号を破壊する」のではない。 sizeof(monthfilename)で50が得られるが、本当にreplaceしたいのは”テスト(XXXX年XX月分)” の部分だから、50ではなく”テスト(XXXX年XX月分)”の長さが必要。 X sprintf(monthfilename, "テスト(%c%c%c%c年%c%c月分)", O sprintf(monthfilename, "テスト(%c%c%c%c年%c%c月分)¥n", /* <-strlenで長さを得られるようになる */ X strncpy(replace, monthfilename, sizeof(monthfilename)); O strncpy(replace, monthfilename, strlen(monthfilename));
621 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:16:42.62 ] まだエラー出るじゃねーかw もう一回自分で調べてみるわ
622 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:45:30.61 ] *ptemp = "....."とかやってんじゃねーの?
623 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:23:51.71 ] >>619 strncpy()の挙動はちゃんと調べた? 曖昧にしていると嵌るぞ。 monthfilenameに文字列を作ったら、memcpy(replace, monthfilename, strlen(monthfilename))でいいべさ。
624 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:29:38.54 ] そもそも、replaceが見つかった時点で const int year = sizeof("テスト(") - 1; const int month = sizeof("テスト(XXXX年") - 1; replace[year] = monthbuf[0]; replace[year + 1] = monthbuf[1]; replace[year + 2] = monthbuf[2]; replace[year + 3] = monthbuf[3]; あ、面倒だ。以下同様に。或いはmemcpy()を使って。 memcpy(replace + month, monthbuf + 4, 2); ってこったろ。 monthfilenameなんて要らないじゃん。
625 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:30:29.67 ] >>620 > O sprintf(monthfilename, "テスト(%c%c%c%c年%c%c月分)¥n", /* <-strlenで長さを得られるようになる */ えっ
626 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:40:53.45 ] >>624 後でメンテが面倒だからその方法はあえて避けた で、memcpyの関数を見て、「あれ?俺何でstrncpy使ってんだ?」と思ったんで、 memcpy(replace,monthfilename,strlen(monthfilename)); って書いてみたら一発でいけました strncpyは最後に終端文字が自動的に付加されないことは知ってたから、 使ったのに何でダメだったんだろう? あくまで文字列コピー用の関数だからかな? まあとりあえずmemcpyでいけましたんで良しとします。 ご迷惑をおかけしました。 ありがとうございました。
627 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:44:25.52 ] 確かに>620は間が抜けている。 >>604 strcpy()は遅くないよ。
628 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:52:13.36 ] >>626 sizeof使ってたからじゃなくてか?
629 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:17:00.56 ] >>628 sizeofをstrlenにしても、strncpyを使ったらだめでした 原因分かる人が居るなら教えて欲しいものですね
630 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:20:55.01 ] fputs で落ちてるんじゃなくて strncpy の内部で落ちてるんでないかい? replace の器が 丁度 ,"テスト(XXXX年XX月分)" で終るような場合 sizeof(monthfilename) = 50 で複写すると器の範囲を突破するもの
631 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:27:02.05 ] エスパー試験か。
632 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:31:48.07 ] >>630 残念 replaceの器であるptempで該当の文字がある部分は、終端よりも大分前だ。 たぶん終端よりも2000バイトぐらい前。 わかる人いない? このスレならレベル高そうだから誰かわかると思ったんだけど。 いや、別にバカにしてないよ
633 名前: ◆QZaw55cn4c mailto:sage [2012/01/06(金) 12:37:10.20 ] つ codepad.org/ 話はそれからだ。
634 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:37:53.90 ] >>632 コードを全部あげてみなよ。
635 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:42:10.40 ] ptempの文章はあるテキストファイルから読み込んでるから無理 他のコードはvector使いまくってて絶対読めないよ あと身バレしそうだし。 再現できるコード作ってみるわ。余裕があれば。
636 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:47:50.21 ] >>635 釣だろうけど手空きだったので。 codepad.org/QjXEQX0c replace = strstr(ptemp, "テスト(XXXX年XX月分)"); で結果NULLの対策サボってるためとエスパーしてみた。
637 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:56:15.99 ] >>636 実行したら最後に数字の8が書き出されたぞ あとなんで改行文字入れてるのか理解できん。必要か? 結果NULLについては事前に調べて問題なかったから、 あえて書いてないだけ。
638 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:00:48.51 ] 配列のサイズが実は50ではない、ファイル名のプレフィクスが実はテストではない strncpyしたあとの文字列を標準出力に出してみるとかデバッガで見てみるとかしたらどう
639 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:01:52.78 ] ああでもmemcpyならうまくいったのか。 wchar関係とかは
640 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:03:28.82 ] >>637 再現コードを作ってからにしろ、低脳が。
641 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:08:30.36 ] ていうか、replaceの位置自体、ptempの終端から2000バイト以上も前の位置なんだから、 そこにもし50バイト書き込んでもちょっと上書きされる部分が増えるだけで、 別に不正な領域に書き出してるわけじゃないじゃん? もしおかしい領域に書き込んでたら、strncpyの時点でエラーが出るはずだしね。 fputsでエラーが出る理由がわからん。 0x0000000へのアクセス違反っぽいエラーだけど。 なぜmemcpyに変えるだけで、fputsでエラーが出なくなるのかが意味不明。 別に書き換えてる領域は変わんないんだし。 面倒になってきたからゆるーく考えるか、スルーして下さい。 再現コードも作る時間ないかもしれんから
642 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:09:33.30 ] 分かったよ 再現コードは必ず作るから一日ぐらい待っててくれ。
643 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:10:33.20 ] >>641 実はC++/CLIでpin_ptr使ってないからってこともないんだよね。
644 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:12:05.31 ] 糞CLIなんか使わないよ
645 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:12:28.81 ] vectorの内部を直接触ってるとか
646 名前:614 mailto:sage [2012/01/06(金) 13:13:58.28 ] ptempはただの動的確保したバッファだし、 書き出し部分ではvector関連は一切触ってない
647 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:14:02.61 ] どっかで文字列終端コードを破壊しちゃってるような感じのコケ方だなあ
648 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:37:29.65 ] 再現しないコード codepad.org/VLVofCEN
649 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:16:16.30 ] もしLinuxで書いてるなら、614はvalgrind とかの使い方を覚えるべき。
650 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:19:38.96 ] なんでvgrind?と思ったがそんなのがあるのか。
651 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:40:50.89 ] strlenは無条件にバイト数を返して、strncpyの引数3は文字数な環境だとか。
652 名前:614 mailto:sage [2012/01/06(金) 15:50:59.85 ] すいません strncpyでもいけました。 ですが、monthfilenameのバッファを適当な別のバッファに変えて、 sprintf(tempbuf,"テスト(%c%c%c%c年%c%c月分)",monthbuf[0],monthbuf[1],monthbuf[2],monthbuf[3],monthbuf[4],monthbuf[5]); strncpy(replace,tempbuf,sizeof(tempbuf)); ってしないとだめでした。 monthfilenameを使うとやっぱりエラーが出ます。 まあmonthfilenameっていう使わなくなったバッファを使いまわした罰だと思いますが、 sprintf実行した時点でちゃんと終端文字が付加されるので、 おかしくなるはずはないと思うんですが何でですかねぇ。
653 名前:614 mailto:sage [2012/01/06(金) 15:55:40.77 ] それとLinux使ってないってかさっぱりわからないです。 ありがとうございました。
654 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:56:45.68 ] で、再現コードは。 どこまで低脳なんだ。
655 名前:614 mailto:sage [2012/01/06(金) 15:59:49.90 ] 再現コードは作れませんでした 今は元コード使って実験してます。 だって再現しないんだもん
656 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:11:27.36 ] fopen に渡したファイル名のポインタを暗に保持してて、書き換え不可な処理系とかのオチだったりして char name[] = "hogehoge"; FILE* fp = fopen(name, "w"); strcpy(name, "a"); fputs("tekitou", fp); これだけで沈
657 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:17:46.01 ] まったく、どっからそんな妄想がわいてくるんだよ…
658 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:35:50.94 ] つか最初から処理系を書けよ。
659 名前:614 mailto:sage [2012/01/06(金) 16:44:44.43 ] VC2008 express editionとwin 7のコンビです
660 名前:614 mailto:sage [2012/01/06(金) 16:46:02.01 ] >>656 あ、これかもしれないです。 ちょっと待ってて下さい。
661 名前:614 mailto:sage [2012/01/06(金) 16:49:32.60 ] あーでも再現コードでやってみても再現しないですね。 元コードでは相変わらずエラー。 何が違うんですかこれ
662 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:55:53.28 ] すでに他のところでヒープかスタックがぶっこわれてるに10ジンバブエドル
663 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:03:26.64 ] >>614 フィルターを通すと出てくる情報がすべてゴミになるなw 身バレ云々バカじゃね
664 名前:614 mailto:sage [2012/01/06(金) 17:04:02.24 ] でも原因は明らかに>>656 ですよね ファイル名として使ったバッファは使いまわさないようにします。 ありがとうございました。
665 名前:614 mailto:sage [2012/01/06(金) 17:04:52.46 ] バカというかマヌケですね ありがとうございました
666 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:08:46.22 ] >>656 で落ちる処理系なんてどんな行儀の悪いコンパイラだよ そのゴミみたいなコンパイラの名前を知りたいもんだ
667 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:23:28.39 ] いや、馬鹿だよお前 プログラムやめるべき
668 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:31:23.37 ] >>665 落ちるコードの全体ってどこにあります? 未解決なら見てみたいんだが。
669 名前:614 mailto:sage [2012/01/06(金) 17:34:37.76 ] >>666 >>659 に書いてますが >>667 自分用のプログラムだから手抜いて作ったんだよ 配布するやつはちゃんと作ってるから安心しろ >>668 全体のコードは>>614 の50倍ぐらいの長さもあるから無理 身バレの可能性あるし
670 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:52:40.25 ] >>656 が原因とも確認してねーんだろ? だいたい、年を書くのに%c%c%c%cとか使うとこから程度は知れてるがな。
671 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:01:28.93 ] >>670 いや、だから再現するために>>656 のコードと同じことしてみたけど再現しなかったんだって >>661 で言ってるよ 元コードだと起こって、再現するために書いたコードでは起こらなかった コード量による違いでもあるのか?
672 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:02:46.49 ] >>670 別に普通だろ。 それに自分用のプログラムだから動けばいい程度でしか作ってないし
673 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:05:55.10 ] >>672 これが処理できるか確認してもらえますか? int main(void){ char buf[] = "aaa"; buf[1] = 'b'; puts(buf); }
674 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:07:33.29 ] >>673 できた aba
675 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:07:43.12 ] >>672 じゃぁ>>664 は何なんだよ。 頭腐ってるだろ、お前。 >>673 それに何の意味があるんだ。
676 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:08:04.43 ] >>674 ごめん。
677 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:11:00.13 ] >>675 >>664 はそれ以外原因が思いつかないからそう書いたんだよ 一番筋が通ってるし、なんか聞いたことある気がしたしな
678 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:18:07.50 ] なんだその理由は。 これがゆとりが進化した形なのか。
679 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:19:09.05 ] 少なくともお前よりはゆとりでない自信はある
680 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:24:00.19 ] じゃぁなんで>>662 の指摘は無視なんだ? デバッガ使ったことあるか?
681 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:26:13.91 ] デバッグなんてとっくの昔にやってるわ それでもわからんからここに来たんだろーが
682 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:29:34.15 ] ゆとり乙。
683 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:30:51.12 ] >>682 はいはい クソガキは寝てろ
684 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:42:33.72 ] デバッガの使い方も知らないでよく言うな、まったく。
685 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:48:51.15 ] 今回のはデバッガを使っても分からない問題だろ だからここに来た それだけ
686 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:53:10.35 ] なんのためのデバッガだよ。 printfだけでもわかるだろ。
687 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:54:55.88 ] わかんねーよ printfするまでもなく、ブレークポイントしかけて変数の中身見てるわ それでもわかんなかったんだよ
688 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:55:47.73 ] それはお前が低脳なだけ。 再現コードも出さずに迷惑なだけ。
689 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:55:53.74 ] 先に俺の実力とどんなデバッグをしたか書いとけばよかったな 個別に黙らせてると疲れるわ
690 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:56:50.13 ] 再現コードがかけないんだから仕方ないだろ まだはっきりと原因特定できてないんだから めんどくせーからまた後でくるわ
691 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:58:11.07 ] いやいや、すごいよ、お前は。 落ちる場所までわかってるのに理由がわからないとか。 しかもデバッガ上で再現してんだろ? ほんと、すごいわ。
692 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:04:31.37 ] 元コードのデバッガ上で再現してるよ 変数見てもおかしくないんだから原因わかるわけねーだろ
693 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:07:03.13 ] >>692 問題のソースは>>636 のやつか?
694 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:16:44.35 ] つか最初からmonthfilename使い回そうとかバカ確定なんだからさ
695 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:17:11.92 ] しかし、よくそんなレベルでこんなこと>>689 言えるね、おれもびっくりするよ。
696 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:20:46.07 ] >>693 問題のソースは>>617 です。 ですが>>652 のように、monthfilenameを使わずに、 別のバッファを使えば問題なく処理できました。 それともう一回検証してみたところ、memcpyでもstrncpyでも>>617 のソースでやればエラーがでました。 「memcpyならいけた」という私の発言は間違いです。失礼しました。 >>617 のソースは全体のソースの一部です。 再現しようと>>617 のソースを切り取って、 適当な文字列を作ってptempに代入してやってみたら、何故かエラーが出ませんでした。 ですので原因がはっきりと特定できていない状況です。 でも状況からして>>656 の方が指摘していただいてることが 一番可能性が高いと個人的には思っています。 そろそろウザイと思われてると思いますので、 スルーしてくださって結構です。
697 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:22:13.73 ] >>694 お前は人のレス読んでるのか? 自分用のプログラムだから手抜いて作ってるって言っただろが めんどくせーから使いまわすか、って気持ちで作ってたんだよ だからそんなとこ突っ込んでも意味ねーよ
698 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:22:43.71 ] はいはい、低脳乙。
699 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:23:45.56 ] マジメにレスしてくれた方はありがとうございました。 その他のクズの皆さんは死んでください 以上。
700 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:25:13.29 ] 迷惑かけるだけかけて、ほんとゆとりな上にクズが何言ってるんだか。
701 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:30:40.02 ] >>696 妙なところを書き換えてない限り >>656 で落ちるのはありえないんだよマヌケ
702 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:32:32.06 ] >>701 再現コードでは落ちなかったんだよ 元コードだと落ちるんだよ 俺も原因わからねーよ
703 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:35:02.17 ] で、まだ>>689 なの?
704 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:44:33.81 ] >>699 win7でvc++2008で試してみたが。。。 表記されていないptempを「テスト(XXXX年XX月分)」にして、 strncpyの第三引数をstrlen(monthfilename)にすると普通に動いた。
705 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:50:20.27 ] こんな聞きかたしてるバカは死ねってことか。了解。
706 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 20:17:17.89 ] 早く>>689 頼むよ。 どんだけすごいのか教えてちょ。
707 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 20:52:48.43 ] >>689 当たり前だろ。 質問するときは、どういうことを調べたかとか試したかとか書けよ。 プログラムの技術以前の問題だ。
708 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 21:05:14.27 ] どこがおかしいか特定できないのに、ここがおかしいはずだって思い込むアホが多すぎて困る
709 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 21:11:25.65 ] 思い切りから不具合を見つけることもあるんだが。 こいつCの仕様を丸暗記してるのか?
710 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 21:15:55.85 ] 思い切り? こいつってどいつのことだ。 普通、わからなかったら仕様書確認するだろ。