953 :
デフォルトの名無しさん:02/08/18 06:46
ファイル読み込んでバイナリモードで先頭から1bitづつ配列にいれていきたいのですがどうすればいいですか?
954 :
デフォルトの名無しさん:02/08/18 07:03
for
>>953 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[]) {
FILE *fp;
int c;
int bit;
int i;
size_t size;
char *vector;
if (argc == 1) {
return EXIT_FAILURE;
}
if ((fp = fopen(argv[1], "rb")) == NULL) {
fprintf(stderr, "%s: %s\n", strerror(errno));
return EXIT_FAILURE;
}
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
if ((vector = malloc(size)) == NULL) {
fprintf(stderr, "out of memory\n");
return EXIT_FAILURE;
}
for (i = 0; i < size && (c = getc(fp)) != EOF; i++) {
vector[i] = 0;
for (bit = 7; bit >= 0; --bit) {
vector[i] <<= 1;
if ((c & (1 << bit)) != 0) {
vector[i] |= 1;
}
}
}
return EXIT_SUCCESS;
}
956 :
デフォルトの名無しさん:02/08/18 12:46
>>955 単にbitの並びを逆転させた配列を作ってるだけのような気がするが。。
>>956 は?逆転なんかしていませんが。
バイナリモードでファイルを読んで、先頭から1ビットずつ配列に入れる
という要求をそのままコードにしただけですが、何か間違っていますか?
958 :
デフォルトの名無しさん:02/08/18 14:50
ど初心者丸出しの質問で申し訳ないのですが・・・。
マクロ展開後のソースを読む方法を教えて下さい。
(コンパイルオプションだと思うのですが、探し方が悪いためか、
ドキュメントで見つけられず)
使用可能なコンパイラは、
(1) gcc
(2) BCC5.5.1
(3) VC++6.0
の3つです。
(カナリ恥ずかしいですが)よろしくお願い致します。m(_ _;)m
960 :
デフォルトの名無しさん:02/08/18 14:55
>>959 ありがとうございます。
できれば、具体的な操作方法(またはヘルプ検索のキーワード)を教えて頂きたいのですが。
>>957 読み込んだcをMSBから調べていって、vector[i]のLSBからセット
していくんだから、bitの並びが逆転してるのは間違いない。
それが963の要望とあっているかどうかはわからないけど。
レス数が950を超えています。1000を超えると表示できなくなるよ。
(´・∀・`)ヘー
>>958 VC++6.0ならcl /?でオプションの一覧を参照できるだろ。
>>962 つーか963は別に何も求めてないだろ。
さて。
そろそろ
うめとくか
973 :
デフォルトの名無しさん:02/08/19 11:09
scanf("%d %d",from,to);
だろ
埋めなくていいよ。
>>973 ネタですか?ねぇ、ネタですか?ネタって言ってくださいYO!!
>>975 int f, t;
int *from = &f, *to = &t;
ってやりゃいいんだ(w
あ、いや、そうなんだけどさぁ…(笑)。
うめうめ
たてたて
980 :
デフォルトの名無しさん:02/08/20 15:55
標準入力関数のエコーバックって消せますか?
UNIX Cで、分割コンパイルのやり方を教えてください
おながいします
ワケワカンネェヨ ヽ(`Д´)ノ ウワァァァン
>>983 cc -c a.c
cc -c b.c
cc -c c.c
cc -c d.c
cc -o e a.o b.o c.o d.o
>984
まずはリンカではないかえ?
cat a.c b.c d.c e.c > tmp.c && cc tmp.c
それはむしろ結合コンパイル。
ネタをネタ(略
埋めろー!!
埋め立てですが何か?
cat a.c b.c d.c e.c | gcc -x c /dev/stdin
>992
バカモノ! こうだる!
--- a.cの中にて ---
#include "b.c"
--- b.cの中にて ---
#include "c.c"
それで、cc a.cとすれば完璧。
for c in *.c; do echo "#include \"$c\""; done | gcc -x c /dev/stdin
995 :
デフォルトの名無しさん:02/08/23 06:05
cc -c a.c
cc -c b.c
cc -c c.c
cc -c d.c
ar q libe.a b.o c.o d.o
ranlib libe.a
cc -o f a.o -L. -le
996げっと
1!
2!
3!
だーーーーーーーーーーーーー!!!
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。