トップページ⇒tech
1001コメント269KB

C言語なら俺に聞け! Part 123

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/02/26(日) 13:58:25
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

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

エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

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

他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
前スレ
C言語なら俺に聞け! Part 122
http://pc8.2ch.net/test/read.cgi/tech/1139570025/
0232デフォルトの名無しさん2006/03/04(土) 21:05:38
>>226
ウィルスの作成、スパムツールの作成、ワームの作成、
0233デフォルトの名無しさん2006/03/04(土) 21:18:30
>>231
ありがとうございます。
マジっすか、もうちょっと調べてみます。
0234デフォルトの名無しさん2006/03/04(土) 21:19:18
>>232
ありがとうございます。
勉強するのやめます。
0235デフォルトの名無しさん2006/03/04(土) 21:19:25
>>226
AIが止まらない! を読むんだ
0236デフォルトの名無しさん2006/03/04(土) 21:24:44
sscanfをやめてfscanfで一つづつ読む。
ただしこれだと行末に来たのかどうかが分からない。
0237デフォルトの名無しさん2006/03/04(土) 21:26:37
調べる間に書き終わるだろ・・・
0238デフォルトの名無しさん2006/03/04(土) 21:28:58
1行読み込む(やり方は適宜調べよ)。末尾位置を退避。
\tを\0に変換。
先頭をatoi。strlen+1だけ後ろにずれる。…というのを末尾まで繰り返す。
0239デフォルトの名無しさん2006/03/04(土) 21:31:16
>\tを\0に変換。
イミナサス
0240デフォルトの名無しさん2006/03/04(土) 21:34:16
>>235
結構好きだw
アセンブリも使えるようになりたい俺
0241デフォルトの名無しさん2006/03/04(土) 22:57:31
エディタは何使ってる?
0242デフォルトの名無しさん2006/03/04(土) 23:09:11
vi
0243デフォルトの名無しさん2006/03/04(土) 23:11:19
vim
0244デフォルトの名無しさん2006/03/04(土) 23:18:43
>>242-243
�d
でも色んな種類があるんだな(´・ω・`)迷う
0245デフォルトの名無しさん2006/03/04(土) 23:18:58
xyzzy
0246デフォルトの名無しさん2006/03/04(土) 23:21:30
emacsよりvi派です。
0247デフォルトの名無しさん2006/03/04(土) 23:29:34
XXYBA
0248デフォルトの名無しさん2006/03/04(土) 23:44:09
ゴミみたいな雑談はOKでPOSIXはNGというのもわけのわからんスレだな
0249デフォルトの名無しさん2006/03/04(土) 23:50:53
>>228
strtok() で分割したトークンに対して sscanf() で変換するというのを
繰り返せばいいのではないだろうか。
0250デフォルトの名無しさん2006/03/04(土) 23:56:19
>>226
OS作成。組み込み用マイコンなどのROM作成。普通のアプリ。
など、たいていのことは出来てしまうが、大規模なソフトを作る
場合は注意が必要。というか、何でもCで出来るからといって
何でもCを使うのはやめとけ。
0251デフォルトの名無しさん2006/03/05(日) 00:14:09
strncpy(d, s, n);
*((char*)d+n)=0;
を1命令でやってくれる関数ないですか?
0252デフォルトの名無しさん2006/03/05(日) 00:20:52
>>251
一命令でこなす関数と言うかCPUはシラね

つ【strlcpy】
0253デフォルトの名無しさん2006/03/05(日) 00:21:25
>>251
sprintf(d, "%.*s", n, s);
0254デフォルトの名無しさん2006/03/05(日) 00:28:33
トーシローが適当に書いてみるテスト
*(strncpy(d, s, n) + n) = 0;
0255デフォルトの名無しさん2006/03/05(日) 00:29:46
strncpy(d, s, n)[n] = '\0';
0256デフォルトの名無しさん2006/03/05(日) 00:31:58
>>252
サンクス。BSD系のものですね。
しかし何でWikipediaに載ってるんだw
0257デフォルトの名無しさん2006/03/05(日) 00:39:34
autoconfを活用すればどの環境でも使える
0258デフォルトの名無しさん2006/03/05(日) 00:58:26
257が理解せずに書いてるように思えて仕方がない
0259デフォルトの名無しさん2006/03/05(日) 01:07:34
/*
0260デフォルトの名無しさん2006/03/05(日) 01:44:59
スレ違いだったらすいません。
C言語でプログラムを作り、H8マイコンに入力して、オシロスコープに
文字(アルファベットなど)を表示させるという実験をしているのですが、
どう考えたらいいか分かりません。sin波形や円は出せたのですが、文字に
ついてはサッパリです。どなたか分かる方、考え方を教えて下さい。

0261デフォルトの名無しさん2006/03/05(日) 01:46:46
スレ違い。
プログラム関係ない
0262デフォルトの名無しさん2006/03/05(日) 01:51:00
オシロスコープに文字を表示させることじたい無謀な気がするんだが・・・
0263デフォルトの名無しさん2006/03/05(日) 01:52:42
>>262
そんな事無いぞ
0264デフォルトの名無しさん2006/03/05(日) 01:54:54
>>263
今ググって見たがそんな機能がついてるものがあったなんて・・・
0265デフォルトの名無しさん2006/03/05(日) 01:56:40
>>264
機能なんて必要ないって。
オシロの基本の機能だけでできる。
02662602006/03/05(日) 02:01:30
ちょっと質問が悪かったです。
文字というのは、H8マイコンの出力をオシロで観測して、波形の
組み合わせで作るという事です。
また、この質問について、どなたかスレ誘導お願いします。
0267デフォルトの名無しさん2006/03/05(日) 02:03:27
>>266
円ではなく線を書くのはできた?
0268デフォルトの名無しさん2006/03/05(日) 02:14:12
せめて制御系スレに行ってください。
02692602006/03/05(日) 02:14:48
ドットでなら線は書けました。
0270デフォルトの名無しさん2006/03/05(日) 02:15:38
すごい久しぶりにCのプログラム書くんでちょっとかなりうろ覚えなところがあるんで教えて欲しいのですが

struct LIST{
int val;
struct list *next;
} ;

main()
{
struct LIST root, *p;
p = &root;
p->val = ...;
for(;;){
if((p->next = (struct LIST *)malloc(sizeof(struct LIST))) ==NULL){
printf("malloc error\n");
exit(1);
}
p = p->next;
p->val = ...;
p->next = NULL;
}
}

この自分と同じ型へのポインタを持つやつの扱い方がなんかあやふやなんですが
なんか書いててすごく違和感があるんですがこの書き方は変で普通こう書くって部分はありますか?
(実際に書いてるのはこのデータ構造ではないのでこの場合特有というのではなく、一般的な話で)
0271デフォルトの名無しさん2006/03/05(日) 02:20:35
>>270
>struct LIST{
>int val;
>struct list *next;
>} ;
普通も何も、struct LIST * next;じゃないの?

>main()
これは int main()だろうな。
0272デフォルトの名無しさん2006/03/05(日) 02:21:00
すみませんが、プログラムを簡単に説明していただけないでしょうか?
0273デフォルトの名無しさん2006/03/05(日) 02:23:41
普通はそのrootからして全部malloc()しないか?
まあ、しなくてもいいんだが、最後のfree()でrootだけ特別扱いになる。
0274デフォルトの名無しさん2006/03/05(日) 02:38:29
普通は

struct LIST *root = NULL;

だよな。
02752702006/03/05(日) 02:43:44
>>271
LISTは間違ってました

>>273,>>274
なるほど確かにそうですね


ありがとうございました
0276デフォルトの名無しさん2006/03/05(日) 02:49:08
中規模な数値計算プログラムを書いています。
実際はケースバイケースだとは思いますが、
VisualC++8[高速化オプション]+Pentium4 PCの場合
a+b と a*b の実行速度は大体何倍くらい
違うんでしょうか?
0277デフォルトの名無しさん2006/03/05(日) 02:49:51
自分で測定汁
0278デフォルトの名無しさん2006/03/05(日) 05:02:07
プログラムのプの字も分からないくらいのど初心者が、
それこそ基礎の基礎から分かるようなC言語の参考書などありますか?
0279デフォルトの名無しさん2006/03/05(日) 05:02:23
無い
0280デフォルトの名無しさん2006/03/05(日) 05:51:03
プの字もってコンパイラもIDEも隣家も何それ状態だろ
初期の俺がそうだったからわかる
0281・∀・)っ-○●◎- ◆Pu/ODYSSEY 2006/03/05(日) 05:57:09
>>276
5倍は違う
0282デフォルトの名無しさん2006/03/05(日) 05:59:09
>>276
3倍くらい
0283デフォルトの名無しさん2006/03/05(日) 06:28:32
12倍ぐらいじゃない
0284デフォルトの名無しさん2006/03/05(日) 06:45:13
そんなにいかねーよ、2倍だろ
0285デフォルトの名無しさん2006/03/05(日) 08:51:21
>>249
それかっこいいですね!使わせていただきます!
0286デフォルトの名無しさん2006/03/05(日) 10:46:42
*/
0287デフォルトの名無しさん2006/03/05(日) 10:55:40
>>285
プ
0288デフォルトの名無しさん2006/03/05(日) 11:18:35
>>285
ポ
0289デフォルトの名無しさん2006/03/05(日) 12:13:22
「!=」を入力するの大変なんだけど。
右小指でシフト押して「!」、左小指でシフト押して「=」。あほか
0290デフォルトの名無しさん2006/03/05(日) 12:25:27
左親指で左シフト押したまま左薬指で!、右中指で=
0291デフォルトの名無しさん2006/03/05(日) 12:26:29
Delphiなら<>ってかけるぞ。乗り換えろ。
0292デフォルトの名無しさん2006/03/05(日) 12:51:12
でふぁいんしる
0293デフォルトの名無しさん2006/03/05(日) 12:56:01
どうやるの
0294デフォルトの名無しさん2006/03/05(日) 13:07:18
#define not_eq !=
0295デフォルトの名無しさん2006/03/05(日) 13:08:10
これで<>
0296デフォルトの名無しさん2006/03/05(日) 16:20:22
Cファイルのファイル名に規制とかある?
全角使っちゃだめとか、文字数制限とか
0297デフォルトの名無しさん2006/03/05(日) 16:40:41
それOS依存
Winならパス込みで256文字以下でスペース・全角込みでもOK
0298デフォルトの名無しさん2006/03/05(日) 16:40:44
OSとかコンパイラに依存。
MS-DOS/Windows16ビット版は最大8文字だった。
02992962006/03/05(日) 16:42:25
>>297-298
ありがとうございました。
0300デフォルトの名無しさん2006/03/05(日) 16:51:32
おまいら、コンパイラ何使ってる?
0301デフォルトの名無しさん2006/03/05(日) 17:03:28
High C
0302デフォルトの名無しさん2006/03/05(日) 17:08:40
>>294
<iso646.h>があるだろ。
0303デフォルトの名無しさん2006/03/05(日) 17:46:28
Machine C


あ、コンパイラじゃねえ
0304 2006/03/05(日) 17:50:45
C言語におけるプログラムのスッタク領域に積まれるアドレスで
ローカル変数、関数の引数、リターンアドレス、ebpレジスタの保存値が
挙げられますが、このebpレジスタの値とは、main関数やユーザー定義関数等
での始まりのアドレスの値の事を指していると言う解釈でよろしいでしょうか?

どなたかebpレジスタの値について、大まかな説明をして頂けませんか?お願いします。
0305デフォルトの名無しさん2006/03/05(日) 17:51:56
すいません名前消し忘れました。あとスタックでした。申し訳ないです
0306デフォルトの名無しさん2006/03/05(日) 17:54:56
(・∀・)スッタク!!
0307デフォルトの名無しさん2006/03/05(日) 17:58:22
ebpレジスタで検索かけた上で聞いてるのか?
03083042006/03/05(日) 17:59:25
すいません自己解決してしまいました。スルーして下さい。
0309デフォルトの名無しさん2006/03/05(日) 17:59:55
>>304
アセンブラ系のスレの方がいいかもね。
うろ覚えで間違っているかもしれないけど、ebpは積まれている
現在のアドレスだったような気がする
03103042006/03/05(日) 18:00:40
>>307
なんとなく理解できました。すいませんでした・・・。以後気をつけます。
03113042006/03/05(日) 18:02:22
>>309
わざわざありがとうございます。すいませんでした。本当に申し訳ないです
03123092006/03/05(日) 18:07:36
やべーespと勘違いしていた(汗)
でも自己解決したならいいか。スレ汚しスマソ
0313デフォルトの名無しさん2006/03/05(日) 19:25:27
アーキテクチャ依存の話をするな
0314デフォルトの名無しさん2006/03/05(日) 19:40:08
脊髄反射乙
0315デフォルトの名無しさん2006/03/05(日) 20:17:22
エスパーの話はするくせに
0316デフォルトの名無しさん2006/03/05(日) 20:54:18
Visual C++ 2005 Express Editionを導入して、自分に合わなかったので削除したら
Cファイルが開けなくなってしまいました。
何が原因でしょうか?

http://www.imgup.org/iup172215.jpg
0317デフォルトの名無しさん2006/03/05(日) 20:55:25
無理やり開いてアプリと関連付けろ
0318デフォルトの名無しさん2006/03/05(日) 20:56:47
>何が原因でしょうか?

>Visual C++ 2005 Express Editionを導入して
>削除した
から
0319デフォルトの名無しさん2006/03/05(日) 20:59:43
元に戻すにはどうしたら?
0320デフォルトの名無しさん2006/03/05(日) 21:02:14
>>319
>>317
0321デフォルトの名無しさん2006/03/05(日) 21:06:19
どうしてみんな後藤さんを嫌うの?
0322デフォルトの名無しさん2006/03/05(日) 21:10:34
>>319
Microsoft .NET Framework 2.0
Microsoft .NET Framework 2.0 日本語 Language Pack

この二つ消してみ
0323デフォルトの名無しさん2006/03/05(日) 21:10:44
ITブームに乗って人財産稼ぎたく
C言語という物を始めてみたいのですが
OSの入れ方が分かりません。
何が原因でしょうか?
0324デフォルトの名無しさん2006/03/05(日) 21:11:36
>>323
なんでC言語始めるのにOSの入れ方聞くの?
0325デフォルトの名無しさん2006/03/05(日) 21:13:20
>>324
氏ね
03263242006/03/05(日) 21:14:58
>>325
寂しい人生おくってんだね。女房の尻にしかれてこんなところでしかストレス発散できない。
がんばれ。応援するよ。
0327デフォルトの名無しさん2006/03/05(日) 21:27:15
http://www.imgup.org/iup172215.jpg

「VCExpress.c.8.0」と書いてあるところを「Cファイル」にするにはどうしたらいいですか?
>>322
削除したけど元に戻りませんでした。
0328・∀・)っ-○●◎- ◆Pu/ODYSSEY NGNG
フォルダオプションで関連付け弄れよ。スレ違いっていうか板違い。
0329デフォルトの名無しさん2006/03/05(日) 21:47:45
あらゆる物の入り口でつまずいて中には入れなさそうな316に幸あれかし
0330デフォルトの名無しさん2006/03/05(日) 21:48:54
やっと元に戻りました(´・ω・`)
0331デフォルトの名無しさん2006/03/05(日) 23:35:36
ちっ戻りやがったか
■ このスレッドは過去ログ倉庫に格納されています