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


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

C言語なら俺に聞け(入門篇) Part 26



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 : " ");
  }
//... 月の表示とかは適当にどそ






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

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

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