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


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

【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131



1 名前:デフォルトの名無しさん [2007/02/01(木) 23:08:46 ]
このスレは標準Cのみの限定スレです。
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

C FAQ 日本語訳
www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244

他の過去ログはここに
nssearch.hp.infoseek.co.jp/clang/
前スレ
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
pc10.2ch.net/test/read.cgi/tech/1159613789/


GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
専門の別スレッド↓があるのでそこへさようなら。

【初心者歓迎】C/C++室 Ver.34【環境依存OK】
pc10.2ch.net/test/read.cgi/tech/1169039760/
C/C++の宿題を片付けます 82代目
pc10.2ch.net/test/read.cgi/tech/1169575464/

461 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 01:23:14 ]
>>457-459
サンクス、思い出した。言語は関係ないな、こんなイメージで、ぶちこんどいた。

time_t now = time(0);
struct tm local = *localtime(&now);
time_t adjust = (local.tm_mday - remote->tm_mday) * (24 * 60 * 60);
if (adjust > issenwokoeta) {
  throw new AdjustOverflowException();
}
local.tm_mday = remote->tm_mday;
local.tm_hour = remote->tm_hour;
local.tm_min = remote->tm_min;
local.tm_sec = remote->tm_sec;
return mktime(&local) + adjust;



462 名前:444 のものです。 [2007/05/02(水) 02:04:03 ]
あるプログラムから別のプログラムから立ち上げて、
その標準入出力を掴むプログラムを作っていたものです。

その呼ばれたプログラムのstdin,stdoutを呼び出し元プログラムで制御するまでに一立ったのですが。
仮にsshやftpを立ち上げてみると、ログインパスワード入力時の
「Password:」 の表示が標準出力じゃないみたいで、
呼び出し元プログラムを通さず、画面に出てきてしまいます。

一体何故でしょうか?

463 名前:462訂正 [2007/05/02(水) 02:04:43 ]
>あるプログラムから別のプログラムから立ち上げて、

あるプログラムから別のプログラムを立ち上げて、


464 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 02:41:30 ]
>>463
スレ違い。

465 名前:デフォルトの名無しさん [2007/05/02(水) 03:03:04 ]
んじゃ別のところで;^^)

466 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 04:58:46 ]
つ【stderr】

467 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 09:34:10 ]
パスワード系はエコーバックもあれしてるからなあ

468 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:25:37 ]
つ/dev/tty

469 名前:デフォルトの名無しさん [2007/05/03(木) 04:12:22 ]
話ぶった切って悪いんですがILP64環境で4バイト長の整数を使いたいときってどうなるの?



470 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 04:23:57 ]
C99 ならこれが使えるんじゃないかと思うけど、どうだろう?
ttp://seclan.dll.jp/c99d/c99d09.htm#dt19990621

471 名前:デフォルトの名無しさん [2007/05/09(水) 11:36:43 ]
ヘッダにコードを書いてはいけないと聞いたのですが
何かあるのでしょうか?
別に書いても動きますよね?

472 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 11:42:37 ]
動く事は動くが再利用性やコードの見通しが悪くなるからあんまり書かない方がいい

473 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 11:55:36 ]
>>471
規格の 6.9 External definitions で、一つの関数または変数に対する定義は
プログラム全体で一つ以下(使われなければ無くてもいい)と制限されている。
ただし inline 関数や初期化子の無い外部変数定義は例外。

ヘッダは複数のコンパイル単位に取り込まれるので、うかつに関数や変数の
定義を置くとプログラム全体としては同じ名前に対する定義を複数持ってしまう
ことになり、未定義動作となる。

現行の一般的な処理系では、この規則に反するほとんどの場合がリンク時に
「重複した定義」などのエラーとして報告される。

474 名前:デフォルトの名無しさん [2007/05/09(水) 12:03:53 ]
>>472 473
なるほど、わかりました。
ありがとうございます。

475 名前:デフォルトの名無しさん [2007/05/09(水) 13:41:50 ]
3次元配列を使ってプログラムを組んだんですが、これをポインタを使ったプログラムに書き換えたいです。
簡単な方法があれば教えて欲しいです。
いまいちポインタが分かってないもんで、よろしくお願いします。
3次元配列は、2000*2000*2000の配列です。

476 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:03:38 ]
>>475
配列とポインタって中でやることはほとんど同じだから、
書き換えたってたいして意味無い(動かないものが動くようになったりしない)よ?

> 3次元配列は、2000*2000*2000の配列です。
これ、一般人が買うようなPCだとオンメモリでは扱えない大きさだよ?
(わかってるならいいんだけど)

477 名前:デフォルトの名無しさん [2007/05/09(水) 14:22:57 ]
>>476

ありがとうございます。やっぱり動作が軽くなったりはしないですよね・・・


478 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:28:48 ]
何十ギガという単位で実メモリがあれば速くなるんじゃないかな。


479 名前:デフォルトの名無しさん [2007/05/09(水) 14:47:12 ]
今FDにはいっている会員IDとPCの中にあるDATファイルの会員IDを照らし合わせて、同じ会員IDの名前だけとりだすというプログラムをつくっているんですがどなたか優しいできる方プログラムをのせていただけませんか?おねがいします!



480 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:50:45 ]
まずは両方のデータをアップしなさいな。
データのフォーマットがわかないと作れないじゃん。

481 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:53:31 ]
訂正:わかないと→わからないと

482 名前:デフォルトの名無しさん [2007/05/09(水) 14:55:28 ]
データとは会員IDのナンバーとかですか?ほんと初心者ですいません。

483 名前:デフォルトの名無しさん [2007/05/09(水) 15:26:41 ]
FDの中のデータは会員IDのみになっていて、1001がはいっています。PCのDATファイルには会員ID、名前、生年月日、住所の順に
1001 田中 19840908 千葉県
1002 高橋 19841203 埼玉県
1003 吉田 19840405 山形県
1004 佐藤 19841112 沖縄県
がはいっています。この2つを照らし合わせて1001のIDの田中だけ表示させたいというプログラムです。やさしいかた教えてください!お願いします!

484 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 15:35:58 ]
>1001 田中 19840908 千葉県
「1001」と「田中」の間には何があるの?
半角スペース?
他の項目の区切りも同じ?

485 名前:デフォルトの名無しさん [2007/05/09(水) 15:41:40 ]
区切りは全部タブです!よろしくお願いします!

486 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:00:39 ]
>>480 >>484
丸投げするような莫迦の相手をするな。

487 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:07:23 ]
何日までに作ってほしい?

488 名前:デフォルトの名無しさん [2007/05/09(水) 16:16:07 ]
早ければ早いほどうれしいですが忙しいなら無理には大丈夫です。今週いっぱいにはつくりたい予定ですが。丸投げですいません。よろしくお願いします。

489 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:21:33 ]
代金は銀行振り込みでいい?



490 名前:デフォルトの名無しさん [2007/05/09(水) 16:28:26 ]
#include <stdio.h>

const int BUFFER_SIZE = 100;
int main()
{
int y,m,d,days,n;
char buf[BUFFER_SIZE],c;
printf("年月日を入力してください\n");
while(true){
fgets(buf,BUFFER_SIZE,stdin);
n=sscanf(buf,"%d%d%d%c",&y,&m,&d,&c,);
if(n==3){
break;
}
else if(n==-1){
continue;
}
else{
printf("error\n");
return 0;
}
}


年月日を入力して曜日を求めるプログラムの一部なんですが、
fgets(buf,BUFFER_SIZE,stdin);
n=sscanf(buf,"%d%d%d%c",&y,&m,&d,&c,); の部分はどういう処理になるんでしょうか?nに整数が入るのがイマイチわかりません

491 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:44:15 ]
ユーザがどういう入力をすると想定してるの?
もしかして"20070509"(YYYYMMDD)とか?

492 名前:490 mailto:sage [2007/05/09(水) 17:05:15 ]
そうです。2007 5 9 って半角スペースで区切ると曜日が表示されます。
2007 5 9みたいに入力してなぜnが3とか-1とかになるんですか?

493 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 17:10:27 ]
-1 ではなく EOF と書け。

494 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 17:22:59 ]
>n=sscanf(buf,"%d%d%d%c",&y,&m,&d,&c,);
この%cは何を得ようとしてるの?

495 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 17:27:22 ]
標準関数のリターン値の意味を質問しているのか?

ヘ ル プ 読 め。

manとかMSDNとかググるとか、ヘルプ読めない環境でプログラミングなんて無茶だから。

496 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 18:04:25 ]
>>483
#include <stdio.h>

int main(void)
{
 system("grep -f fddata.dat pcdata.dat");
 return 0;
}


497 名前:490 mailto:sage [2007/05/09(水) 18:14:30 ]
簡単に書き直したらうまく出来ました。
ありがとうございました

498 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:44:15 ]
WindowsでもLinuxでもいいんだけど共有メモリ使う時に
構造体にキャストして使う方法とわざわざmemcpyで各要素ごとにコピーする方法が
等価だって言い張る人にどうやって違うんだよって説明すればいいですか?

相手は37歳のシナです。

499 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:56:06 ]
>>498
比較用のコードを書いて、ベンチマークの結果をみせてやるとか。



500 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:57:49 ]
>>498
そのシナさんはキャストでもコピーが作成されると思ってんの?
だとしたら、キャストの場合はアドレスが変わってないことを
見せてあげればいいんじゃない?

501 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:58:49 ]
>>498
まず >>1 を読み直せ。それでも相談を続けるなら2つの方法に
対応するコードと、双方の主張を理由をつけて挙げてくれ。

502 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:58:50 ]
>>499
それが、そうやって今しがたみせてやりましたが今度は
このような書き方は一般的じゃないとかいって怒り出して机をめちゃめちゃに
して帰りました。おまえの低能ぶりには呆れるとか捨て台詞を吐いて行ってしまいました。

正直な話、共有メモリの一番うまい使いかたってOpenMPとか見たいに自作のデータ構造を
そのまま共有メモリで共有できる形が理想なのにそれを言っても解かってもらえないのだろうか。

503 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:02:04 ]
よそでやれ

504 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:10:58 ]
Cの話じゃないよね
そいつの人格か理解力の問題か
そういう人とのコミュニケーションの取り方の問題だよね

505 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:12:08 ]
>>502
シナさんがこんな時間まで残業付き合ってくれてたんなら少しは大目に見てやれ。

506 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 00:32:14 ]
マ板でやれ

507 名前:デフォルトの名無しさん [2007/05/10(木) 11:03:51 ]
483ですがどなたか本当におねがいします。新社会人でこまっています。やさしい方おねがいします。

508 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 11:12:27 ]
Excel でも使えば?

509 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 11:14:59 ]
>>483
Cじゃないとだめ?
C#とかJavaは?



510 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 11:17:50 ]
>>507
>>1 を100回音読後、首吊って詫びろ阿呆。

511 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 11:33:06 ]
>507
上司に「できません」って言え

512 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:37:05 ]
>>507
仕事なのか? だったらコマンドラインで grep 使えよ。
わざわざ作れもしないCプログラムで仕事を遅らせるのはアホ。


513 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:00:16 ]
>>507
もしやそれは練習課題?

514 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 17:29:15 ]
上にもあるように、scanfつかえ

515 名前:デフォルトの名無しさん [2007/05/10(木) 18:10:54 ]
ごめんなさい。でも真剣に困ってるし助けてほしいんです。よろしくお願いします。

516 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:12:27 ]
だからscanfつかえよ

517 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:13:24 ]
帰れ

518 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:13:55 ]
常識知らずにかける情けは無い

519 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 18:20:37 ]
スレ違い



520 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:38:09 ]
だーから相手すんなってば。
相手するなら誘導してやれ。

521 名前:デフォルトの名無しさん [2007/05/10(木) 22:03:02 ]
>>515
ですけどもういいです。もっとできる人探しておしえてもらいます。
ここにいる人達はどうせこのプログラムがかけないんでしょ?
こんなしたてに聞いているのにひどい人達ですね。みなさんわからない
時期はなかったんですか?

522 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:07:50 ]
君は自分の要求を受け入れる人の言うことにだけ耳を傾けるのかね。

523 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:24:34 ]
>ここにいる人達はどうせこのプログラムがかけないんでしょ?
こういうこと言うやつに何も教える気は無い、消えろ。
その聞き方じゃどこ行っても同じだぞ、初心者にしか相手してもらえない

524 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:26:54 ]
少なからず相手しちゃってる件

525 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:26:59 ]
ネタにマジレスカコイイ

526 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:30:26 ]
でしょでしょエヘヘ

527 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:53:21 ]
でも実際こういう新入社員は居る事実。

528 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 16:58:23 ]
>>521を本人が書いているという保証はどこにもないなあ・・・。


529 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:41:56 ]
だから?



530 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:21:44 ]
疑問文に感嘆符つけて質問する奴は俺の中ではスルー対象だわ。
非常に高い確率でDQNだからな。相手してられん。

531 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:23:12 ]
疑問文に感嘆符とはどういうことだね!

532 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:35:48 ]
?!

533 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:37:02 ]
>>530
感嘆符つけて質問する奴なんてお前のレス以前に見たこと無い。

534 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:39:36 ]
勘違いしつつぼやく奴は俺の中ではスルー対象だわ。
非常に高い確率でDQNだからな。相手してられん。

535 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:43:23 ]
インテロバーング

536 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:46:44 ]
疑問符と感嘆符を間違える奴は俺の中ではスルー対象だわ。
非常に高い確率でDQNだからな。相手してられん。

って、スルーできてねーっつーの。

537 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:03:18 ]
今こそスルー力が試されるとき!

538 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:34:27 ]
throw new NullPointerException("ぬるぽ");

539 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:05:17 ]
try {
 >>538
} catch(Exception e) {
 System.out.println("ガッ");
}



540 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:06:41 ]
Javaはスレ違い。
C言語で書け!!

541 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:06:53 ]
>>483
あんまり暴れるな

「IDが一致してたら表示」でいいんだよね

FDからIDを1つ取ってくる
それをPCのファイルのIDを照らし合わせて一致したら表示
次のIDをFDから持ってきて上を繰り返す

という手順でいいんじゃない?
いまケータイだからソースは載せられんけど

542 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 16:43:12 ]
>>541
>あんまり暴れるな
君みたいに、いちいち反応する連中がいなくなってくれれば
もっと早く収束してたんだろうけどね。

543 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 16:47:37 ]
あまりにくだらない

544 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:24:35 ]
>>542
いちおう>>541はやり方書いてるけど?

545 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:18:25 ]
>>544
は?関係ねえよ。
>>486

546 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:36:30 ]
てst

547 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:56:34 ]
>>545
とりあえずおまいが氏ね

548 名前:デフォルトの名無しさん [2007/05/15(火) 23:15:56 ]
どなたか
www.cns.ci.ritsumei.ac.jp/~kitano/exp1/ex3.html
の08、09の解析をしていただけないでしょうか?

549 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:22:45 ]
>>548
スレ違い



550 名前:デフォルトの名無しさん [2007/05/20(日) 06:03:52 ]
整数12ビットの列を扱うには、構造体のビットフィールドを使うしかないのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 06:33:12 ]
16bitなり32bitなりで読み込んで
必要な部分だけマスクして取りだしゃいい。

それでも外部に記録されているものを読み書きする場合には
エンディアン依存は避けられないが
ビットフィールドよりはまし。

552 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:14:54 ]
charを介して変換すればマシンのエンディアンには依存しない
どう変換するかは元データのエンディアンによる(6ビット1バイトだとすれば)

553 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:36:09 ]
どうせ外部とのI/Fなら、コンパイラもセットで依存し捲くってもいいというコンセンサスを得た上で
ビットフィールドを使うのが一番楽だと思うが。
#後は野とn(ry

554 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:00:06 ]
そしてBeOSの悲劇

555 名前:デフォルトの名無しさん [2007/05/21(月) 16:02:25 ]
1000までの素数を求めて出力するプログラムの作成を教えてください。
mod使う方法で。


556 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:14:04 ]
mod 素数 C言語あたりでググったほうがはやい

557 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:15:12 ]
つか、Cでmod使えとは。
>>555
宿題スレへ行け。そしてもう来るな。

558 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:18:27 ]
#define mod(a, b) ((a) % (b))

559 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:27:29 ]
inline int mod(int a, int b) { return (a % b); }



560 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 00:15:06 ]
ファイルの行数を数えてその分配列を確保したいのですが、
このような配列の使い方(foo関数の部分)をしていいのでしょうか?
malloc()した方がいいんでしょうか。

よろしくお願いします。

int main()
{
  int line_count;

file_line_count(&line_count); //ファイルの行数を数える関数
foo(line_count);
}

void foo(int line_count) //foo関数
{
  int array[line_count]:
       ^^^^^^^^^^^^^^
  :
  :
}

561 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 00:33:19 ]
>>560
対象とする規格による。いわゆる C99 なら標準で認められている。
C99 より前の C の規格や現行の C++ では認められていない。






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

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

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