C言語なら、ぬるぽに聞け! Part 〈53〉
■ このスレッドは過去ログ倉庫に格納されています
0001ぬるぽ
NGNG質問する前には最低限Googleで検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だゴルァ!!
∧_∧
( ´∀`)< ぬるぽ
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
0446デフォルトの名無しさん
NGNG低レベルな人は黙っていてください。
0447デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1040220302/
GO!
0448400
NGNGお騒がせしました。
0449デフォルトの名無しさん
NGNG未定義、不定の挙動を把握することはデバッグ時に大いに役立つぞ。
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG> Unix系の場合
こーゆー寝ぼけた発言に対して誰か突っ込んでやれよ。
0452デフォルトの名無しさん
NGNGその考え方は危険だよ。
0453デフォルトの名無しさん
NGNGむしかえすと、また低レベルな人は黙っていてくださいと言われますよ?
0454333
NGNG一応実行後一時停止するようになってるのですが・・・
>>335
はい。コンパイルOKという表示がでています。
>>336
windowsでLSI-86試食版3.3
に「C言語を始めよう」というソフトを
組み合わせて使っています。
始めはフォントが黒いせいで見えないのかと思ったのですが
選択範囲を指定して選択してみても反転しない
のでどうも表示されていないようです。
どうか教えてください。
0455400
NGNGどうもサンプル拾ってきました。
差し戻さずリトライすれば良いようですね。
こんなこと自宅でテストすれば良いのですが、環境がありませんので
皆さんのお知恵を拝借させていただきました。ありがとうございます。
>>451さん
何が寝ぼけているのか解りません。
論点を説明願います。
OSではなく石レベルの話だと言いたいのでしょうか?
0456デフォルトの名無しさん
NGNG糸冬
0457デフォルトの名無しさん
NGNGchar a[5] がリターンアドレスに重なっており、
なおかつ、リターンアドレスの上位8bitがたまたま0だったとする。
Intel 系のCPUでは、a[5]の所は下位8ビットなのでそこに0を書くと
はまるが、Motorola 系のCPUでは、そこは上位8ビットなので、
0x00 を書いても運良く助かるってこと。
Intel系やMotorola系以外のバイトオーダーを使うCPUもあるので、
環境に激しく依存する。
0458デフォルトの名無しさん
NGNG>a[4]
0459400
NGNGどうも。
で 終わり。
0460デフォルトの名無しさん
NGNG確実に表示はされているはず。
printfの後にfor文で無限ループすれば?
0461デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
int WaitTime(time_t*timeAdd,time_t waitTime)
{
time_t nowTime;
time(&nowTime);
if(*timeAdd+waitTime<=nowTime){time(&(*timeAdd));return 1;}
return 0;
}
int main(void)
{
time_t wait10,wait100;
time(&wait10);time(&wait100);
for(;;)
{
if(WaitTime(&wait10,1))printf("%s",ctime(&wait10));
if(WaitTime(&wait100,10))break;
}
return 0;
}
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
/* 時間がnow+10になるまで待ってnow+10を返す */
time_t mysleep10sec(time_t now){
time_t t;
while ((t = time(&t)) < now + 10){
}
return t;
}
int main(void)
{
time_t t;
char *s;
s=calloc(1,256);
/* 10の倍数秒になるまで待つ */
for (time(&t); t%10!=0; time(&t)){
}
s = ctime(&t);
printf("%s\n", s);
for(;;){
t = mysleep10sec(t);
s = ctime(&t);
printf("%s\n", s);
}
return 0;
}
0464デフォルトの名無しさん
NGNGFreeBSDにもあるよ。
以下、FreeBSDのman 3 sleepから抜粋
>STANDARDS
> The sleep() function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'').
標準関数じゃないね。
0465デフォルトの名無しさん
NGNG$ man 3 sleep
No entry for sleep in section 3 of the manual
0466デフォルトの名無しさん
NGNGWindowsにはSleepってのがある。
>>465
nanosleep(セクション2)は?
0468デフォルトの名無しさん
NGNGとりあえず無限ループ+最後にifならdo{}while使えば?
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNGtime(&(*timeAdd)); が意味不明、間違えじゃないけど
time(timeAdd); でいいのでは?
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG{
(printf, "hello C");
return 0;
}
こういう言語仕様だったら見た目がもっとカッコイイソースが書けたのにね。
0474デフォルトの名無しさん
NGNGいい加減にスレ違い、板違いなんで消えろ
0475デフォルトの名無しさん
NGNG((int main) ((int argc) (char **argv))
(printf "hello C")
(retrun 0))
0476デフォルトの名無しさん
NGNGイイ!!
そういう感じのコンパイラ作ってみるよ。
0477デフォルトの名無しさん
NGNG((printf) ("hello C"))
((retrun) (0)))
0478デフォルトの名無しさん
NGNGlispで我慢してろ。Cに手を出すな。
0479デフォルトの名無しさん
NGNG#define END }
並に、氏んでいいよ。
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGcygwinでは
manは無いけどsleep()は何故かあった。
しかもなにもインクルードしないのに使えてしまって不思議
sleep(1)は1秒止まるし
0482デフォルトの名無しさん
NGNG(((( ;゚Д゚))) ガクガクブルブル
0483デフォルトの名無しさん
NGNGMS-DOSプロンプトの話なんだが、Cを実行した後の大量のデータがほしぃ場合、
スクロールしてしまって、始めの方のデータ見れない・・
これどうやってみるんだろ?
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG出力をファイルにリダイレクトして、後から見れ。
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGで、画面に出力する内容をa.txtに保存する。
foo.exe >>a.txt
で、a.txtにどんどん追加する。
がんがり。
0489デフォルトの名無しさん
NGNG詳しくやり方を教えてください・・・スマソ
0490デフォルトの名無しさん
NGNG>>488
0491デフォルトの名無しさん
NGNGで1ページずつみれるよ。
0492デフォルトの名無しさん
NGNG×:Cを実行した後の大量のデータがほしぃ場合
○:コンパイルエラーの最初の方のエラーを見たい場合
0493デフォルトの名無しさん
NGNGできました。ありがとうございます!
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG人によります。
漏れはおすすめしない。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGむしろ、アルゴリズムとデータ構造の本を読んだほうが幸せになれることも……
0498デフォルトの名無しさん
NGNGお勧めはなんですか?
0499デフォルトの名無しさん
NGNGどっちかて言うとA定食の方が美味しいよ。安いしね。
0500デフォルトの名無しさん
NGNGprintfだってstrcpyだって(ヘッダーファイルを)インクルードしなくても使えるだろ。C++じゃあるまいし。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG4月バカはもう終わりましたよ
0503デフォルトの名無しさん
NGNGもしかして宣言しないと関数を呼び出せないと思っている?
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>504
0506デフォルトの名無しさん
NGNGいかようにすればよろしいのでしょうか?
何分厨房ではございますがご教授のほど
おながいいたします。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG16進数の44を10進数に変換したいの?
0509デフォルトの名無しさん
NGNG16進の44を10進数に変換といことではなくて
16進の44を10進で44としたいのです。
16進で55があったら10進では85ですよね?
そうではなくて例え、16進で44というデータが
あっても、それを強引に10新の44と
プログラムに思いこませたいのです。
わかりづらい説明ですが、おながいいたします。。。
0510デフォルトの名無しさん
NGNG{
return ((val & 0xf0) >> 4) * 10 + (val & 0xf);
}
0511デフォルトの名無しさん
NGNGナゾ。
0512デフォルトの名無しさん
NGNGアリガトンゴザイマス
カンゲキ・・・
シフトかぁ。。。
>>511サソ
なんかしんねぇけど
A-Fは入ってこないというナゾの仕様なんです。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGプログラムは何を根拠に入って来るデータを16進だと判断するの?
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519512
NGNGダンプファイルがありまして、
それを関数に渡すんですが
その関数が10進で来ることを予期しており
ヘキサじゃダメというだけの理由でございます。
0520デフォルトの名無しさん
NGNG中身を保持したまま配列の数を5000から5005などに増やしたいときは
いったん別に仮配列を用意してコピーしてから元配列を開放、
また新たに元配列にメモリを確保して仮配列からコピー
という方法しかないのでしょうか?
0521デフォルトの名無しさん
NGNGchar *foo = malloc( 5000 ) ;
...
{
char *neon = malloc( 5005 );
memcpy( neon, foo, foolength );
free (foo);
foo = neon;
}
0522デフォルトの名無しさん
NGNG配列確保→新しい配列のポインタ取得
古い配列 → 新しい配列 にデータ転送
古い配列解放
古い配列のポインタを指す変数=新しい配列のポインタ
または、manpage realloc
0523デフォルトの名無しさん
NGNG0524522
NGNG0525デフォルトの名無しさん
NGNG0526522
NGNGwww9.plala.or.jp/sgwr-t/lib/realloc.html
0529デフォルトの名無しさん
NGNGputs関数の存在意義って何ですか?
Printfで全て間に合うような気がしますが・・・
0530デフォルトの名無しさん
NGNG速度は?
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGわずかにタイプ速度が(ry
0533デフォルトの名無しさん
NGNGprintfね・・・
>>532
タイプの速度ってだいたい
一個なら1秒も変わらんし
複数ある場合はほとんどコピペじゃないのか?
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGprintf("%s\n", s);
だったら puts を使うなあ。
0536デフォルトの名無しさん
NGNGputsの方が速い。
でも処理速度が問題にならなくて、別の箇所でprintf使ってるなら
俺ならprintfで統一する。
0537デフォルトの名無しさん
NGNG530==534は、本質に切り込む問いかけしているぞ。
ま、なんだ。
勘のイイ奴なら何をどう調べればよいか分かるもんだが。
0538デフォルトの名無しさん
NGNG多機能さを実現するためのコスト(printfの場合は書式の
解決処理ね)が、無駄というか、邪魔になる場合がある。
でもって、printfは処理が遅くて、putsは早い。
数百回の処理じゃ違いは体感できないが、何十万回も
繰り返し処理する場合は、その差が顕著になる場合があるよ。
0539デフォルトの名無しさん
NGNGコンソールのスクロールの方が
圧倒的に遅くなると思ふ。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGほざく技術者がいっぱいいるのですが、あんたら馬鹿ですか?
トオモウ事が多いです…
0543デフォルトの名無しさん
NGNG思うだけじゃなくて、本人に家。
0544デフォルトの名無しさん
NGNG1行目にデータ件数を書いて、2行目以降にデータを記述したファイルから、
乱数で出した数字番目の行のデータを取り出して表示させたいのですが、
fgetやfscanfを使って繰り返し読み込ませて目的の行まで進める、
という方法以外に何かいい方法ないですか?
0545デフォルトの名無しさん
NGNG・一気に全部読んで、改行をキーにして探す。
・一行のデータ量が固定なら、計算で長さを出す。で、ファイルポインタを移動させる。
・データ構造を工夫する。
・その他。(他のレス待ち含む)
■ このスレッドは過去ログ倉庫に格納されています