- 1 名前:デフォルトの名無しさん [2008/03/22(土) 23:36:40 ]
- C言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 25 pc11.2ch.net/test/read.cgi/tech/1203343907/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 104代目 pc11.2ch.net/test/read.cgi/tech/1202135539/
- 501 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:37:44 ]
- fgetcで改行まで読む
- 502 名前:デフォルトの名無しさん [2008/04/19(土) 15:46:07 ]
- 関数へのポインタの定義で”型名 (*ポインタ変数)(引数)”とするところを
”型名 *ポインタ変数(引数)”と、するとどうしてダメなのでしょう? お願いします。
- 503 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:49:11 ]
- int *kansu() は int型のポインタを返す関数と解釈される
- 504 名前:デフォルトの名無しさん [2008/04/19(土) 15:56:26 ]
- >>503
よく分からないのですが、int *kansu()はint形のポインタを返す関数の プロトタイプ宣言と解釈されるのですか?
- 505 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 16:01:46 ]
- そういうこと
int* p; p = kansu();
- 506 名前:デフォルトの名無しさん [2008/04/19(土) 16:06:59 ]
- >>503
ありがとございました。
- 507 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 16:08:55 ]
- typedef int kansu_t(void);
kansu_t* kansu = &foo; int n = kansu(); typedef は偉大だと本気で思う。
- 508 名前:デフォルトの名無しさん [2008/04/19(土) 17:30:27 ]
- C言語勉強中の者です。
データ管理のプログラムを作る時、各々のデータ(文字列)の配列のサイズは、 malloc()関数で決めるのが一般的なのでしょうか?
- 509 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:32:18 ]
- 可変長の場合はね。
mallocのほか、calloc()やrealloc()でも可。
- 510 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:38:25 ]
- 最初のうちは、#defineで最大サイズを容易に変更できるようにした固定長配列でもいいと思うけどな。
いずれにしろ、ある程度の規模になればmalloc()は必須になるから慣れておいたほうがいい。
- 511 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:43:25 ]
- free 忘れは大変だしな。
- 512 名前:デフォルトの名無しさん [2008/04/19(土) 17:52:55 ]
- >>509,510,511
ありがとうございます。 「ある程度の規模」というのがわからないのですが、 たとえば、500個くらいのデータの各々に「メモ」配列をつける場合、 200文字までと固定してしまって、実際にはメモのない場合がほとんどだったら?
- 513 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:53:58 ]
- 長さを固定にしたくなければ動的に確保すればいいし、
固定で十分なら固定にすればいい。
- 514 名前:デフォルトの名無しさん [2008/04/19(土) 17:54:40 ]
- 初心者はstring
- 515 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 17:54:59 ]
- C スレで何言ってんの?
- 516 名前:デフォルトの名無しさん [2008/04/19(土) 17:57:25 ]
- mallocやfreeは上級者しか無理 stringをかなり進める
- 517 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 18:01:37 ]
- >>512
「スタック」でぐぐってみるとよし。 スタックは小さいから、そこに収まらない規模の配列は必然的にmalloc()を使うことになる。
- 518 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 18:03:44 ]
- C≠C++
- 519 名前:512 [2008/04/19(土) 18:09:29 ]
- みなさん、ありがとうございます。
さしあたって、Cを勉強しているのですが、 stringが簡単そうですね。 C++も視野に入れて勉強していこうと思います。
- 520 名前:デフォルトの名無しさん [2008/04/19(土) 18:13:37 ]
- string a="あいう";
a=a+"えお"; などと自動でサイズ変更してくれる。 初心者はstring
- 521 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 18:19:10 ]
- a=a+"えお"; とか書くなよ・・・。
a+="えお"; だろ。 コスト考えれ。
- 522 名前:デフォルトの名無しさん [2008/04/19(土) 18:24:08 ]
- 後ろに空きがあったら、メモリを解放せずに増やす方法ありますか? 普通に牌列としてアクセスできてです。
- 523 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 19:37:51 ]
- realloc
- 524 名前:デフォルトの名無しさん [2008/04/19(土) 19:53:31 ]
- 「キーボードより英大文字(A-Z)の文字列を変数cに入力し、それぞれの字種の出現頻度を表示するプログラムを作成せよ。
最初に配列の要素を0で初期化し、英大文字の入力はctrl+zにより終了するようにせよ。 ただし、英大文字以外が入力されたら、その文字数を変数othersでカウントして表示する事。」 という問題について考えていますが、今ここまで出来ました。 #include <stdio.h> int main(void) { int other,i,a[26]; /*変数other、制御用変数i、配列a[26]を宣言*/ for(i=0;i<26;i++) a[i]=0; /*forループで配列aの全要素初期化*/ puts("Input A-Z, end:ctrl+z"); while((i=getchar())!=EOF) if ここから、字種の出現頻度を求めるために一体どうすればいいのか分かりません…。 何かヒントを頂けないでしょうか。
- 525 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:01:06 ]
- A-Zの出現個数をカウントする変数(たぶん配列になるね)を作成する。
文字に応じて対応したカウンタをインクリメントしていき、終了時に頻度を出力。
- 526 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:01:08 ]
- 宿題スレで聞けば
- 527 名前:デフォルトの名無しさん [2008/04/19(土) 20:13:04 ]
- うおおおおおお
やっとCの入門書を読み終えたのだが、 フリーソフトとかで転がってるウィンドウズのプログラムとか まだぜーんぜん無理な気がする。 だいたいそもそウィンドウの一文字も出てこないんだが、、、 コマンドプロンプトでさ、計算とかさ、文字列とかさ、 先がながーーーーーーーーーーーーい みなさんいっぱしのプログラムが作れるようになるまで どんくらいかかりました・・・?
- 528 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:21:44 ]
- >>527
読むだけじゃダメなんだぜ? 理解し実践して身に付けなければ次へ進むことはできない。
- 529 名前:デフォルトの名無しさん [2008/04/19(土) 20:22:53 ]
- 9歳ぐらいからコード書き始めて
初めてリリースしたのが14歳でvimのパッチ。 自分のオリジナルソースは某3Dライブラリで19の時。 お遊びで始めたsocket通信利用のP2P対戦ゲームを作成したのが20の時。 採用された企業で売れる商品に携われたのが23歳の時。 14年ぐらいかな
- 530 名前:デフォルトの名無しさん [2008/04/19(土) 20:26:20 ]
- 経験歴と実力は関係ない 駄目なやつは20年でも無理
- 531 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:32:22 ]
- >>529
特定しました
- 532 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:16:05 ]
- sscanfの %n 指定子を使って文字数を取得したいのですが、意図し
たとおりの動作しません。良い方法が有れば教えてください。出来 ればstrlenは使いたくない。他におかしいところが有ったら教えて 貰えるとありがたい。 ====== const char *str_src = "a\nab\nabc\nabcd"; res = sscanf(str_src, "%s%n%s%n%s%n%s%n%s%n", str_dst[0], &n[0], str_dst[1], &n[1], str_dst[2], &n[2], str_dst[3], &n[3], str_dst[4], &n[4]); for (i = 0; i < res; i++) { printf("(%2d): %s\n", n[i], str_dst[i]); } ====== 結果(意図する結果は1,2,3,4) ====== ( 1): a ( 4): ab ( 8): abc (13): abcd ======
- 533 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:18:21 ]
- %n は先頭からの位置であって、
前回読み出した位置からの相対位置を取得するものではない。
- 534 名前:側近中の側近 ◆0351148456 [2008/04/19(土) 21:22:03 ]
- >>532
(っ´▽`)っ %nは、sscanf関数の呼出しでこれまでに読み取った文字数を、その整数に書き込む。 つまり、 a・・・1文字 a\nab・・・4文字 a\nab\nabc・・・8文字 a\nab\nabc\nabcd・・・13文字 ということになる。
- 535 名前:532 mailto:sage [2008/04/19(土) 21:28:43 ]
- >533 >534
早速の回答ありがとうございます。 どうさ結果からしてそうらしいとは思っていました。残念。 strlen呼ぶしか無いのかなぁ
- 536 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:37:30 ]
- scanf は空白読み飛ばしたりするし、
%n だけじゃ難しいね。 strlen の方が簡単だと思う。
- 537 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:11:47 ]
- strlenを使いたくない理由は?
- 538 名前:532 mailto:sage [2008/04/19(土) 22:15:32 ]
- >537
改めて突っ込まれると特に理由は有りません(汗) 強いて言うならあまり美しくないと思ったくらい。
- 539 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:44:39 ]
- >>532
ptr=str_src; for(i=0;i<5;i++){ sscanf(ptr, "%s%n", str_dst[i], &tmp); n[i]=strlen(str_dst[i]; ptr+=tmp; }
- 540 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 23:44:51 ]
- >>524
if(isupper(i)) a[i-'A']++; else other++;
- 541 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 23:51:09 ]
- ('A')
- 542 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 00:50:12 ]
- while ('A') { ... }
- 543 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 01:20:11 ]
- >>507
>>507 int n = (*kansu)(); でないと、偉大さがあいまいになる気がします‥‥‥。
- 544 名前:デフォルトの名無しさん [2008/04/20(日) 13:57:17 ]
- テキストファイルから、特定の文字列に挟まれている文字列を抽出して、
一覧表示するプログラムを作りたいのですが、 何かヒントをください!!
- 545 名前:デフォルトの名無しさん [2008/04/20(日) 13:59:50 ]
- >>544
strstrを使う
- 546 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 14:30:22 ]
- あとは strncpy
- 547 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 14:33:57 ]
- popen("grep 'keyWord.*keyWord' fileName", "r")
# 寧ろsedか
- 548 名前:デフォルトの名無しさん [2008/04/20(日) 21:06:28 ]
- DXライブラリを使ったゲーム作成に入りたいです
現在、BorlandC++ Compiler 5.5(コンパイラ)とCPad(エディタ)の組み合わせで使っていますが この環境でのDXライブラリを使う方法がいまいちわかりません DXライブラリの公式サイトではBCC Developerというエディタで説明を進めているのですが、CPadでは使えないのでしょうか?
- 549 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:19:38 ]
- 使える
- 550 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:26:08 ]
- >>549
そうですか! しかし使い方がわかりません どこを設定すればいいでしょうか?
- 551 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:36:12 ]
- Cpadで書いてBCC Developerでコンパイルすればいいだけ
- 552 名前:548 mailto:sage [2008/04/20(日) 21:59:01 ]
- >>551
そのまま使える方法はないですかね?
- 553 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:00:52 ]
- 質問の意味が分からない
- 554 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:02:41 ]
- ある値が出るまでずっと同じ動作を繰り返して、
ある値が出たら終了するようにするには、どうやるべきでしょうか?
- 555 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:04:48 ]
- >>554
do{x=動作;}while(x==ある値);
- 556 名前:548 mailto:sage [2008/04/20(日) 22:05:04 ]
- >>553
中のファイルをどこに置けばインクルードされるのかがわからないんです・・・
- 557 名前:554 mailto:sage [2008/04/20(日) 22:07:37 ]
- >>555
do whileの存在を忘れてました!試してみます ありがとうございました!
- 558 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:09:25 ]
- >>555
do{x=動作;}while(x!=ある値); だな
- 559 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:10:59 ]
- >>556
コンパイラから見える場所において置けよ
- 560 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:11:35 ]
- >>556
よく分からん BorlandC++ Compiler 5.5のスレかDXライブラリのスレいったほうがいい
- 561 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:13:06 ]
- >>548
bcc32.cfg ilink32.cfg の中身を見てみることを勧める?
- 562 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:19:33 ]
- >>561
なんで疑問系?>オレ
- 563 名前:548 mailto:sage [2008/04/20(日) 22:26:56 ]
- >>559
.hや.libのフォルダが複数あってわかりません。。 >>561 パス追加するとインクルードはできてるようなのですがエラーも大量に出てきました。。
- 564 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 11:41:20 ]
- 文字列を#defineで通し番号を付けて
#define test1 "hogeA" #define test2 "hogeB" ... #define test10 "hogeJ" と定義した場合、Nを変数としてtestNを呼び出すにはどうすれば良いでしょうか。 イメージとしては配列の場合のtest[N]のようにです。
- 565 名前:デフォルトの名無しさん [2008/04/21(月) 12:12:54 ]
- C言語でシリアル通信するとき、
プログラムではどういう設定をしたらいいんでしょうか?
- 566 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 12:31:23 ]
- >>565
OSの資料を読みましょう。
- 567 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 12:57:15 ]
- const char*の配列にすればお望みの事ができるよ。
const char* test[] = { "hogeA", "hogeB", ... };
- 568 名前:564 mailto:sage [2008/04/21(月) 13:07:25 ]
- >>567
完璧に思った通り動きました!! 的確な回答有難うございます。感謝します。
- 569 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 14:53:45 ]
- memmove(&feattest[0],&featall[0], struct feature);
とするとコピーがなされません。どうしてでしょうか。 なお、 struct feature* featall; struct feature* feattest; struct feature { double x; double y; double a; double b; double c; } としています。
- 570 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 15:02:40 ]
- >>569
featall, feattest が指す先はどこ?
- 571 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 15:04:04 ]
- セミコロン書き忘れてるみたいだし、sizeofも単なる書き忘れ?
- 572 名前:デフォルトの名無しさん [2008/04/21(月) 15:08:32 ]
- >>569
どうでもいいけど、構造体のコピーなら=を使えよ。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:40:46 ]
- 構造体の多重間接参照が出来なくて困っています・・・。
struct set{ bool range; int x; int y; bool ans; }; main(){ struct set setA[5]; struct set setB[5]; (計算略) ans=Judg(A,B); } bool Judg(struct set *setA,struct set *setB){ if((setA+((setB+i)->range))->range==true){/*問題発生っぽい箇所*/ return true; } return false; } みたいな感じなのですが、 (setA+((setB+i)->range))->range==true って参照する事は出来ないんですか??
- 574 名前:573 mailto:sage [2008/04/21(月) 17:43:42 ]
- すみません bool ansの位置が間違っていました。。
main関数内で宣言しています。
- 575 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:46:16 ]
- setA[setB[i].range].range==true
こういうことをしたいのか?
- 576 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:47:30 ]
- そもそもiはどこから出てきたんだろう
- 577 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:48:22 ]
- >>573
コンパイルエラーならエラーメッセージを貼るべし
- 578 名前:573 mailto:sage [2008/04/21(月) 17:52:47 ]
- >>575
そういう事をしたいです。 >>576 実際はforループの中に入ってるんですが、 プログラムがゴッチャゴチャになっているのでかなり抜粋しています。 多重間接参照の方法が知りたいと思いまして… >>577 コンパイルは通ります。でも値が上手く入っていないようで常に0を返してきます。。 多重間接参照の部分は合っていますか?変に回りくどく聞いて申し訳ございません。。
- 579 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:01:07 ]
- とりあえずmainの中でsetA[0].rangeとsetA[1].rangeの値を確認してみるべきだと思う
- 580 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:14:54 ]
- (setA+bool型)だけどそういうプログラムなのかな?
- 581 名前:573 mailto:sage [2008/04/21(月) 18:27:07 ]
- >>579
表示させてみた所、値がおかしいです。・・・常にfalse。。 >>580 はい。そこも伝わりづらくすみません。 質問投げっぱなしで申し訳ないのですが、 >>579さんの感じでやってみた所、原因は(計算略)の部分にありそうです。 ここに数百行詰まっていて助けを借りるのも憚られるので、自力でなんとかしてみます。 気にかけて頂きありがとうございました。。
- 582 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:55:44 ]
- プロトタイプ宣言についての質問です。
/* 1つめのソース */ void init(int *a, int **p); // ここに書く int main() { int a = 0, *p = NULL; init(&a, &p); printf("%d\n", *p); return 0; } void init(int *a, int **p) { *p = a; } /* 2つめのソース */ int main() { void init(int *a, int **p); // ここに書く int a = 0, *p = NULL; init(&a, &p); printf("%d\n", *p); return 0; } void init(int *a, int **p) { *p = a; } この2つはどちらも実行可能なのですが、どのように違うのでしょうか。 プロトタイプ宣言にローカルとかグローバルとかあるものなんでしょうか。 ちなみにコンパイラはgcc4.1.1です。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:45:20 ]
- ぶっちゃけ、どこにあろうと原則として、上にあればおk。それに関しては
init(&a, &p); の上にあればおkってことね。
- 584 名前:初心者 [2008/04/21(月) 19:46:27 ]
- バブルソートの高速化手法について以下の用語を調べ説明せよって
問題があるんだけどう答えていいかわからない…教えてください 使う用語 亀(turtle) コムソート(comb sort)
- 585 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:50:40 ]
- >>584
www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=VJE&q=comb+sort%E3%80%80%E4%BA%80&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
- 586 名前:デフォルトの名無しさん [2008/04/21(月) 21:47:01 ]
- バブルソートを高速化ってアホだな。
- 587 名前:デフォルトの名無しさん [2008/04/21(月) 22:02:13 ]
- 結局、ポインタを理解できなかった。
- 588 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:07:10 ]
- 俺はボインタッチが(y
- 589 名前:デフォルトの名無しさん [2008/04/21(月) 22:08:54 ]
- Main関数で5つの整数を読み込み,
その5つの値の平均(double)を だすプログラムを作成 せよ. その時、5つの引数を受け取り,平 均を返す関数を呼び出し,返された平均値をmain関数 で画面出力すること
- 590 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:25:23 ]
- 宿題スレ行け
- 591 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:35:58 ]
- >>589
どこからどうやって読み込むのかが不明なのでなんとも言えない
- 592 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:50:00 ]
-
double average(double a, double b, double c, double d, double e) { return (a+b+c+d+e)/5.0; } int main() { printf("%g¥n", average( 2, 3, 4, 5, 6)); return 0; }
- 593 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:53:37 ]
- コマンドライン引数に指定したファイルのデータ長を取得するような
処理を作りたいのですが、上手くいきません お手数かと思いますが、どなたか教えて下さい
- 594 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:57:43 ]
- Cではファイルのサイズを取得する汎用なライブラリは存在しないので
環境依存の技を使う必要がある 実際にstdioライブラリで読み取ることのできるデータ数が問題なら 実際に読んでその数を数えるしかない
- 595 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:59:38 ]
- つ ファイルを開いたらEOFまでポインタを進めて、ファイルの先頭からの
オフセット値で調べる
- 596 名前:さなぎさん [2008/04/21(月) 23:02:30 ]
- カレンダー表示プログラムがうまくできません。
日付データを生成するプログラムは完成しました。そして 次のステップを目指していましたらとある問題に出会いました。 2009 000000000102030405060708091011121314151617181920212223242526272829303100000000000000 010203040506070809101112131415161718192021222324252627280000000000000000000000000000 010203040506070809101112131415161718192021222324252627282930310000000000000000000000 000000010203040506070809101112131415161718192021222324252627282930000000000000000000 000000000001020304050607080910111213141516171819202122232425262728293031000000000000 000102030405060708091011121314151617181920212223242526272829300000000000000000000000 000000010203040506070809101112131415161718192021222324252627282930310000000000000000 000000000000010203040506070809101112131415161718192021222324252627282930310000000000 000001020304050607080910111213141516171819202122232425262728293000000000000000000000 000000000102030405060708091011121314151617181920212223242526272829303100000000000000 010203040506070809101112131415161718192021222324252627282930000000000000000000000000 000001020304050607080910111213141516171819202122232425262728293031000000000000000000 2文字づつ読み込みまして "00"の時は全角スペースを入れます。 完成イメージとしましては 2009年カレンダー 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 というように表示させたいのですが、fgetsコマンドがうまく使えません。 どなたかご教授くださいな
- 597 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:03:22 ]
- >>593
1. stat(filename, &stat); 2. fp=fopen(filename,"wb");fseek(fp,0L,SEEK_END);ftell(fp);fclose(fp);
- 598 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:06:24 ]
- >>593
#include <stdio.h> #include <sys/stat.h> int main(int argc, char* argv[]) { struct stat buf; for(int i = 1; i < argc; i++) { stat(argv[i], &buf); printf("%5ld bytes <%s>¥n", buf.st_size, argv[i]); } return 0; }
- 599 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:08:08 ]
- >>596
sscanf(p, "%2d", &num); p+=2; printf("%3.0d", num);
- 600 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:14:55 ]
- >>596
{ char rdbuf[256]; char numb[4]; fgets(rdbuf, 256, stdin); int year = atoi(rdbuf); numb[2] = 0; for(int i = 1; i < 12; i++) { fgets(rdbuf, 256, stdin); for(int j = 0; j < 31; j++) { numb[0] = rdbuf[j*2]; numb[1] = rdbuf[j*2+1]; printf("%s", atoi(numb) ? numb : " "); } //... 月の表示とかは適当にどそ
|

|