【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/09/30(土) 19:56:29まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
前スレ
【ANSI-C】 C言語なら俺に聞け! Part 129
http://pc8.2ch.net/test/read.cgi/tech/1156661024/
GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
専門の別スレッド↓があるのでそこへさようなら。
【初心者歓迎】C/C++室 Ver.30【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1156145593/
C/C++の宿題を片付けます 74代目
http://pc8.2ch.net/test/read.cgi/tech/1158844912/
新・推薦図書/必読図書のためのスレッド 1
http://pc8.2ch.net/test/read.cgi/prog/1146889623/
0002デフォルトの名無しさん
2006/09/30(土) 19:56:44< | > 俺はグラットン持ちの通りすがりのナイトであって
|.|.| 2getしたがどうやってブロントって証拠だよ!!
|.|.|
|.|.|
< | > おいィ?お前それで良>>1のか?
...| | |. 仏の顔を>>3度までという名セリフを知らないのかよ
...| | |. 暗黒が持つと逆に頭がおかしくなって>>4ぬ
...| | |. グラットンす>>5いですね
.< .| .> >>6駄にaguるなネットポリスに捕まりたいのか?
/(.._..|..|..|.._..)ヽ それほどでも>>7い
>.─<>─.< このままでは俺の寿命がストレスでマッ>>8なんだが・・
ヾ ̄ヾ .√ ")' >>9枚で良い
.| .| 俺の怒りが有頂>>10になった
.| .|
.| .| おれパンチングマシンで>>100とか普通に出すし
) (
.▽
0003デフォルトの名無しさん
2006/09/30(土) 20:04:250004デフォルトの名無しさん
2006/09/30(土) 21:40:46ISO/ANSI/JIS乙
0005デフォルトの名無しさん
2006/09/30(土) 21:42:110006デフォルトの名無しさん
2006/09/30(土) 21:42:42全ての疑問に答えます。
0007デフォルトの名無しさん
2006/09/30(土) 21:44:19HTML 4.01+CSS 2.1を完全実装したブラウザは存在しませんが
Web板のstrictスレはちゃんと回ってます。
0008デフォルトの名無しさん
2006/09/30(土) 22:01:43モヒカンが出たぞー!
0009デフォルトの名無しさん
2006/09/30(土) 22:23:020010デフォルトの名無しさん
2006/09/30(土) 23:20:110011デフォルトの名無しさん
2006/09/30(土) 23:37:26SP1が待ち遠しいぜ。
0012デフォルトの名無しさん
2006/09/30(土) 23:47:06少しだけ嬉しいかな。
0013デフォルトの名無しさん
2006/09/30(土) 23:52:14俺はC言語全くの初心者です。
勉強しようと思って本は買いました。
ついでに何かソフトも買ってキーボードを叩きながら覚えようと思うのですが・・・
何かお薦めのソフトはありますか?
教えて君で申し訳ないのですが。。。教えてください。
0014(^-^) ◆MONSOON/qo
2006/09/30(土) 23:55:09BCC developer (ボーランドc++5.51)がおすすめ
0015デフォルトの名無しさん
2006/09/30(土) 23:56:08>>13
このスレは初心者や教えて君はお断りだ。もっと適切なスレがある。そっち行って。
http://pc8.2ch.net/test/read.cgi/tech/1156145593/
http://pc8.2ch.net/test/read.cgi/tech/1153818463/
0017デフォルトの名無しさん
2006/10/01(日) 00:14:03死ね。ぴかぁ〜
0018デフォルトの名無しさん
2006/10/01(日) 18:56:070019デフォルトの名無しさん
2006/10/01(日) 19:10:410020デフォルトの名無しさん
2006/10/02(月) 06:57:03誘導してやったのは結構なことだが
一言多いとガキっぽく見えるぞ
0021デフォルトの名無しさん
2006/10/02(月) 08:09:16実年齢はどうあれ、精神年齢が低いことは間違いないという事だな。
0022デフォルトの名無しさん
2006/10/02(月) 09:11:18そんなどうでもいいことを言わずにいられないあなたも、精神年齢が低いということですね。
0023デフォルトの名無しさん
2006/10/02(月) 14:27:410024デフォルトの名無しさん
2006/10/02(月) 16:15:090025デフォルトの名無しさん
2006/10/02(月) 19:45:100026デフォルトの名無しさん
2006/10/02(月) 20:14:06..|| __ || |WC|
..|| | | ||  ̄ ̄
__ _ ∧_∧ ||.  ̄ ̄ ||
――― (゚Д゚ ) .||. ◎||
⌒ヽ  ̄ ̄ ̄ / つ _つ||. ..||
人, ’ ’, 人 Y ||. |三三| ...||
Y⌒ヽ)⌒ヽ、 )し'(_) ||______ ||
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0027デフォルトの名無しさん
2006/10/02(月) 21:28:160028デフォルトの名無しさん
2006/10/03(火) 17:06:010029デフォルトの名無しさん
2006/10/03(火) 22:35:45ハ_ハ
('(゚∀゚∩
ヽ 〈
ヽヽ_)
0030デフォルトの名無しさん
2006/10/06(金) 22:34:410031至福
2006/10/07(土) 10:05:45C言語で素数列挙プログラムをつくっているのですが
高速にするためには剰余計算を
足し算(もしくは引き算)で行うようにするといいと言われました
いったいどのようなアルゴリズムで剰余計算を加算(or減算)で
おこなえるのでしょうか?
0032デフォルトの名無しさん
2006/10/07(土) 10:20:12そこから抜けてきた時点でのnが余りってことだろ
0033デフォルトの名無しさん
2006/10/07(土) 10:32:02そんな単純だと遅いよな
0034デフォルトの名無しさん
2006/10/07(土) 10:48:37C で書いたアルゴリズムを動作合成とか言うならそれなりの話がありそうだが
0035デフォルトの名無しさん
2006/10/07(土) 11:00:48その整数型には次の演算が行えるなら
・加減算
・乗算
・n倍できる高速な演算(シフト演算)
・等号、大なり、小なり
a/bの余りは、
for(;;){
for(d=0.i=1;1;i++){ if(a<b.leftshift(i)){ d=i-1; break; } } //シフトして初めてaを超えるシフト数dを得る←ここが一番呼ばれる
c=b.leftshift(d);for(;a>c;a-=c); //bをdだけシフトしたcをaから引いていく
if(d==0) break; //もうシフトしてaを超えない最大のdを見つける必要はないので、抜ける
}
で、余りはきっとa
これでもかなり遅いがなぁ…加減算でやったら死ぬと思うが
0036デフォルトの名無しさん
2006/10/07(土) 11:07:440037デフォルトの名無しさん
2006/10/07(土) 11:08:07C でおk
0038デフォルトの名無しさん
2006/10/07(土) 14:11:10また続けられるようにするのは、可能でしょうか?
エンターの入力以外は、終了させたいです。
0039デフォルトの名無しさん
2006/10/07(土) 14:31:360040デフォルトの名無しさん
2006/10/07(土) 14:40:03ありがとうございます。 でも、言葉足らずでした。
できれば、その方法も教えて頂きたいのです。
0041デフォルトの名無しさん
2006/10/07(土) 14:42:34そこまでは忠言できない、情報が少なすぎる
0042デフォルトの名無しさん
2006/10/07(土) 14:51:27えーと、ごめんなさい。 どう言えばいいかもわかりません。
もうちょっと自分で調べてからまた来ます。
0043デフォルトの名無しさん
2006/10/07(土) 14:57:260044デフォルトの名無しさん
2006/10/07(土) 15:08:42機種依存のやり方を取らざるを得ないから、機種依存OKスレへ。
while (1) {
do 〜 while ();
//キーボード入力
if (リターンキーだったら) break;
}
でできるけど、キーボード入力の部分が機種依存になる。
かならずリターンキーを押すのなら
char buf[4];
fgets(buf, sizeof buf, stdin);
if (buf[0] == '\n') break;
みたいなかんじでいけるけど。
0045デフォルトの名無しさん
2006/10/07(土) 15:40:29ADPCMに変換したいので参考になるところオシエテ
0046デフォルトの名無しさん
2006/10/07(土) 18:53:28, イ)ィ -─ ──- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , -─ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′ ___________
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ /
ヽ ヽ -''ニニ‐ / < つーか、スレ違いだろハゲ
| `、 ⌒ ,/ \___________
| > ---- r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ gugurecus ]
(西暦一世紀前半〜没年不明)
0047デフォルトの名無しさん
2006/10/07(土) 18:59:140048至福
2006/10/07(土) 22:33:20剰余計算はあまり速くならないみたいですね
Rabin法を用いた素数の
高速判定アルゴリズムってのがあるそうなんですが
C言語だとどうやって書けばいいでしょうか?
0049デフォルトの名無しさん
2006/10/07(土) 22:51:53素直に書けばいい
0050デフォルトの名無しさん
2006/10/07(土) 23:01:26思うがままに書けばいい
書くことは do に過ぎない
see すなわち実測を怠るなかれ
0051デフォルトの名無しさん
2006/10/10(火) 12:16:39ビットシフトはなんの役に立つのでしょうか?
0052デフォルトの名無しさん
2006/10/10(火) 12:18:29ビットフラグの操作。
0053デフォルトの名無しさん
2006/10/10(火) 12:52:28昔インテルがp5-90でしくじったやり方
0054デフォルトの名無しさん
2006/10/10(火) 15:20:33まだやってんのか阿呆。
0055デフォルトの名無しさん
2006/10/10(火) 17:22:300056デフォルトの名無しさん
2006/10/12(木) 13:06:120057デフォルトの名無しさん
2006/10/12(木) 13:10:59ポインタなら返せる
005856
2006/10/12(木) 13:43:17char * f(void) {
char buf[80];
fgets(buf, 80, stdin);
return buf;
}
int main(void) {
char * a;
a = f();
printf("%s\n", a);
}
0059デフォルトの名無しさん
2006/10/12(木) 13:50:53そのポインタがローカル変数を指している場合
関数を抜けた時点で無効になる
0060デフォルトの名無しさん
2006/10/12(木) 13:52:49引数で渡されたバッファ(?)の内容を書き換える
006156
2006/10/12(木) 13:56:16char * f(void) {
static char buf[80]; /* staticにしました */
fgets(buf, 80, stdin);
return buf;
}
int main(void) {
char * a;
a = f();
printf("%s\n", a);
return 0;
}
0062デフォルトの名無しさん
2006/10/12(木) 14:38:42>>60 のいうこと聞いて書き直せ!
006356
2006/10/12(木) 15:03:08void f(char *buf) {
fgets(buf, 80, stdin);
}
int main() {
char buf[80];
f(buf);
printf("%s\n", buf);
return 0;
}
006456
2006/10/12(木) 15:08:03int main() {
char buf[80];
printf("%s\n", fgets(buf, 80, stdin));
return 0;
0065デフォルトの名無しさん
2006/10/12(木) 15:10:37それから stdin ていうのも引数で受けるのが普通だ。
それから戻り値も成功時は buf をそのまま(ry
0066デフォルトの名無しさん
2006/10/12(木) 15:12:46いきなり ^Z とか ^D とかよ、落ちるようなうろぐらむは書くんじゃねえよ
0067デフォルトの名無しさん
2006/10/12(木) 15:13:11結局 fsets そのままじゃん とお約束
0068デフォルトの名無しさん
2006/10/12(木) 15:25:470069デフォルトの名無しさん
2006/10/12(木) 18:35:120070デフォルトの名無しさん
2006/10/12(木) 19:00:44( ゚Д゚)構造体か?
>データ構造って何ですか?
(;゚Д゚)…え?
0071デフォルトの名無しさん
2006/10/12(木) 20:22:280072デフォルトの名無しさん
2006/10/12(木) 21:54:360073デフォルトの名無しさん
2006/10/12(木) 23:40:18int main(void);
int main() {
printf(">>67 fsets って何やねん\n");
main();
return 0;
}
0074デフォルトの名無しさん
2006/10/13(金) 04:37:38が1000を超えてしまったので、こちらで質問させて頂きます
皆さん、ありがとうございます。
>>997
では、最後に行がなくてもカウントしてもいいのですね
では>>993で述べた、
>>何故、自分の環境だとtotatに(つまり改行文字の数に)1足さなければならないのでしょうか?
で、何故自分の環境だと1を足さなければならないのかが
他の参考書などを調べましたが解決しません・・・・
理由は改行文字で終わってないなら 1を足さなければならないからですかね?
要するの最後の行はとにかくEOFでも数えると覚えればいいみたいですね。
0075デフォルトの名無しさん
2006/10/13(金) 04:41:43有効バイト数が分からないファイルシステムを使っている時、EOFで
ファイルの終わりを判別するという、今考えるととんでもない事をしていた。
0076デフォルトの名無しさん
2006/10/13(金) 04:45:34結果的には数えるのでしょうか?
0077デフォルトの名無しさん
2006/10/13(金) 04:47:020078デフォルトの名無しさん
2006/10/13(金) 04:59:24筋が分岐しているみたいだから一応次スレを立てておいた。
話の続きはそっちでヨロ
C言語なら俺に聞け(入門篇) Part 3
http://pc8.2ch.net/test/read.cgi/tech/1160682950/
0079デフォルトの名無しさん
2006/10/13(金) 05:08:49すみません
0080デフォルトの名無しさん
2006/10/13(金) 05:28:35ch=fgetc(io); if (ch==EOF) abort();
char c;
size_t sz=fread(&c, sizeof (char), 1, io); if (sz==0) abort();
freadは生バイトのまま読み込みで(raw byte)、
fgetcがバイトから文字に符号化(auto ascii char encoding)されるわけじゃないですよね。
1バイト読み込みの方法ですが、両者はどう違うのでしょうか?
0081デフォルトの名無しさん
2006/10/13(金) 05:33:03挙動が異なる事がある。
0082デフォルトの名無しさん
2006/10/13(金) 06:07:260083デフォルトの名無しさん
2006/10/13(金) 06:12:060084デフォルトの名無しさん
2006/10/13(金) 06:50:490085デフォルトの名無しさん
2006/10/13(金) 07:18:390086デフォルトの名無しさん
2006/10/13(金) 12:12:26どちらでオープンしようとも、1バイト読み込んだ内容についてはどちらも同じ。
仮にテキストモードで"\r\n"⇒'\n'の変換が行われるならば、fgetc()でもfread()でも行われる。
0087デフォルトの名無しさん
2006/10/13(金) 15:21:31分かりやすくお願いします..
0088デフォルトの名無しさん
2006/10/13(金) 15:29:150089デフォルトの名無しさん
2006/10/13(金) 15:52:570090デフォルトの名無しさん
2006/10/13(金) 15:59:420091デフォルトの名無しさん
2006/10/13(金) 17:08:13分かりやすくお願いします。。。。
0092デフォルトの名無しさん
2006/10/13(金) 17:10:19鼬害。
0093デフォルトの名無しさん
2006/10/13(金) 21:29:52>>88
コンパイラを使う。
そんなことをしてもほとんどの場合役に立たないけど。
手段を聞くのではなく、目的を示したほうがいいと思う。
0094デフォルトの名無しさん
2006/10/13(金) 21:32:01一行目は無視して。
0095デフォルトの名無しさん
2006/10/13(金) 23:06:11スレ違いは誘導しましょう。
例えばあんたはこっち。
http://pc8.2ch.net/test/read.cgi/tech/1158275665/
0096デフォルトの名無しさん
2006/10/15(日) 01:35:30と言ったエラーが出て困りました。
ググッて調べてみましたが、いまいち解決策が
みつかりません。
宜しくお願いします。
0097デフォルトの名無しさん
2006/10/15(日) 01:37:400098デフォルトの名無しさん
2006/10/15(日) 01:44:13と表示された時の一般的な対処方法ご存知ないですか?
・・・ということでしたorz。
0099デフォルトの名無しさん
2006/10/15(日) 01:47:51http://pc8.2ch.net/test/read.cgi/tech/1160682950/35-
0100デフォルトの名無しさん
2006/10/15(日) 01:50:15>>90
0101デフォルトの名無しさん
2006/10/15(日) 11:50:21同じオブジェクトのコピー(クローン)になるのでしょうか。
上のような構造体のビット・コピーは、CとC++でも挙動は同
じ(互いの構造体メンバー間の同一性は保障される)になるのでしょうか?
もしかしmemmoveは環境依存なの?
■ このスレッドは過去ログ倉庫に格納されています