2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

祝49回 C言語ならあっしに聞け

1 :デフォルトの名無しさん:03/01/15 23:21
俺に答えられることなら何でも聞いとくれ

2 :デフォルトの名無しさん:03/01/15 23:22
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

コンパイラを探しているなら >>2 を見よ。

上記を逸した場合の結果は激しく未定義とする。ウヒ

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/


3 :デフォルトの名無しさん:03/01/15 23:22
23 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html

4 :デフォルトの名無しさん:03/01/15 23:23
46 http://pc3.2ch.net/test/read.cgi/tech/1039328710/
45 http://pc3.2ch.net/test/read.cgi/tech/1038405432/ (待機中)
44 http://pc3.2ch.net/test/read.cgi/tech/1037796472/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037281411/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037134356/ (待機中)
42 http://pc3.2ch.net/test/read.cgi/tech/1037101156/ (待機中)
41 http://pc3.2ch.net/test/read.cgi/tech/1036876790/ (待機中)
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/ (待機中)
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/ (待機中)
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ (待機中)
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ (待機中)
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ (待機中)
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ (待機中)
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ (待機中)
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ (待機中)
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/ (待機中)
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/ (待機中)
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/ (待機中)
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/ (待機中)
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/ (待機中)
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/ (待機中)
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html

5 :デフォルトの名無しさん:03/01/15 23:24
48 http://pc3.2ch.net/test/read.cgi/tech/996171508/
47 http://pc3.2ch.net/test/read.cgi/tech/1040048202/l50


6 :デフォルトの名無しさん:03/01/16 02:46
スレッドの立て方が気持ち悪い…
>>2で「>>2 を見よ。」なんて書いてるし…

7 :名無し募集中。。。:03/01/16 03:00
>>7
空域読め

8 :デフォルトの名無しさん:03/01/16 03:05
>>8の言う通りだぞ

9 :デフォルトの名無しさん:03/01/16 03:09
>>9は世界一の美少女

10 :デフォルトの名無しさん:03/01/16 03:10
>>9
もう冬休みは終わっただろ
冬厨は学校に備えて寝ろ

11 :デフォルトの名無しさん:03/01/16 03:10
>>10
お前もな

12 :前スレの930:03/01/16 03:22
imlibっていまどこにあります?
いろんなサイト探したんですが、リンク切ればかりだったので。。

13 :デフォルトの名無しさん:03/01/16 03:23
>>13
何故分かった!?

14 :Cというより国語です:03/01/16 03:28
K&R本のまえがきCで
ポインタのような大事な機能の説明は改善した。元の例題をさらに洗練させ、
いくつかの章で新しい例を追加してある。
(ここまでは分かる)
例えば、複雑な宣言の扱いは、宣言をことばに、
あるいはその逆に変化するプログラムで補った。

よく分からない・・・。

15 :デフォルトの名無しさん:03/01/16 03:41
>>12
tarball でよければここに。
http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/

RPM ならデストリビュータのサイトでさがせばあるはず。
その場合は開発版もインストールすること。

また、それぞれのフォーマットを表示するのに
libjpeg, libtiff, libpng, libgif などのライブラリを必要とする。

つか、いまどきの Linux ならどれも入ってない?

16 :名無しさん@XEmacs:03/01/16 04:02
>>14
読み進めていけば分かるはず

17 :デフォルトの名無しさん:03/01/16 04:25
>>14訳者がへぼいんだよ。
つーか英文科卒の訳者じゃしゃーねーよ。

18 :デフォルトの名無しさん:03/01/16 05:12
>>17
ソースは?

19 :デフォルトの名無しさん:03/01/16 05:20
恐らくコンピュータ畑の人でもないと思うんだけど
一体どんな経歴で




と思ったら略歴に東大の計算機センターって書いてあるな…

20 :デフォルトの名無しさん:03/01/16 05:24
自分の文章読解力の無さを棚に上げて訳者批判とは......笑える(w

21 :12:03/01/16 05:35
いや、俺窓です。
で、インストールしてhttp://larse-gtk.hp.infoseek.co.jp/imlib/image.htmlここの
プログラムをコンパイルしてみたら、そもそもgdk_imlib.hが無いとか
言われたんで、むりやりPATH通ってるフォルダにそれをコピーしたら、
こんどは、リンク先のプログラムのgdk_imlib_get_colormapとか
gdk_imlib_...系のが全てundefinedと言われてしまうのですが、何が
まずいんですか?

22 :デフォルトの名無しさん:03/01/16 06:38
量子コンピュータで C は使えますか?

23 :デフォルトの名無しさん:03/01/16 06:46
200刷超えてもミスプリが直らないのは仕様ですか?
最近のは直ってるのかなぁ。

24 :デフォルトの名無しさん:03/01/16 07:01
>>22アリエナイ

25 :デフォルトの名無しさん:03/01/16 07:44
アリエール

26 :12:03/01/16 07:57
なんとかhttp://larse-gtk.hp.infoseek.co.jp/imlib/image.html
このプログラムをコンパイルさせたいのですが、何がいけないか分かりません。
imlibをインストールしたときは
% gzip -dc imlib-1.9.14.tar.gz | tar -xf -
% cd mlib-1.9.14
% env CFLAGS=-O2 ./configure
% make
# make install
としています。
ちなみにGTKはhttp://larse-gtk.hp.infoseek.co.jp/gtk/clist.html
こーゆのがきちんとできるので、問題ないと思います。

27 :デフォルトの名無しさん:03/01/16 09:38
>>26
コンパイルするときのコマンドラインと出力教えれ
おそらくインクルードパスが足りないかと。


28 :デフォルトの名無しさん:03/01/16 09:41
量子コンピュータでアセンブラ(ry

29 :デフォルトの名無しさん:03/01/16 11:53
0 と 1 が表現できるなら大体何でもエミュレートできるだろ

30 :14:03/01/16 14:29
レスありがとうございます。
とりあえずもう少しだけ読む勧めていこうと思います。

31 :デフォルトの名無しさん:03/01/16 21:42
あいまいな質問でも、答えてくれるかしら?うふっ?

32 :デフォルトの名無しさん:03/01/16 22:17
>>31
まかせろヴぉけ

33 :デフォルトの名無しさん:03/01/17 02:22
>>29
量子コンピュータは0と1を使わない。
1キュービットは、[0|1]こんなんだ。

34 :デフォルトの名無しさん:03/01/17 06:52
え〜と。
age。

35 :デフォルトの名無しさん:03/01/17 09:01
>>33
要するに2ビットですか?

36 :デフォルトの名無しさん:03/01/17 11:07
最近よく聞く粒子コンピュータってナノテクですか?

37 :デフォルトの名無しさん:03/01/17 11:10
りゅうこ。

38 :デフォルトの名無しさん:03/01/17 12:12
>>35
いえ、キュービットはnビットの転送ができる確率分布です。
量子コンピュータは、2^nビットの演算を一度に出来ると期待されています。
少なくとも、整数を素数へ因数分解することがP時間でできることが証明されています。
ただし、それ以外のいわゆる「普通の計算」が可能かどうかは、実は不明です。
もちろん汎用化してC言語の環境が整えられることは間違いないでしょうが、
それは早くても2050年以降になることでしょう。

39 :デフォルトの名無しさん:03/01/17 12:37
 タートルグラフィックスのプログラムなのですが、  
#include <stdio.h>               
#include <ctype.h>
#include <stdlib.h>
int x,y,dx,dy;
void put_mark(int x, int y)
{ move(x-2,y-2); cont(x+2,y+2);
move(x+2,y-2); cont(x-2,y+2);
move(x,y);
}
void forward(){
x=x+dx;
y=y+dy;
cont(x,y);
put_mark(x,y);
}
void left_turn(){
int tmp;
tmp=dx; dx=-dy; dy=tmp;
}
void right_turn(){
int tmp;
tmp=dx; dx=dy; dy=-tmp;
}


40 :39の続き:03/01/17 12:42

void analysis(ch)
{
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
void turtle()
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) analysis(ch);
}
}
int main()
{
openpl();
space(-300,-300,300,300);
x=0;
y=0;
dx=0;
dy=10;
put_mark(x,y);
turtle();
closepl();
return 0;
}




41 :39の続き:03/01/17 12:44
これをいじって数字を入力したらそれたを数値として読み取り、次のコマンドを繰り返し実行するようにしたいのですが、
どこをどうすればいいですか?例えば、5Fと入力するとFFFFFとおなじ動きをする。さらに@と#でくくった部分を!で呼び出せるようにしたいんですが。
できるだけ初心者でもわかるような簡単なぷらぐらむでおねがいしたいんですが。for文とかwhileぶんとかif文みたいなので。
わがままでスマソ。

42 :デフォルトの名無しさん:03/01/17 13:45
>>41
何が一番わがままかって、このスレは基本的にソース丸投げ禁止だぞ。

43 :名無し@沢村:03/01/17 13:53
>量子コンピュータ

佐野量子が使うPCのこと

44 :デフォルトの名無しさん:03/01/17 15:24
以下の2つのマクロに意味的に何か違いはありますか?
ただ好みの問題でしょうか?
do { ... } while(0) か { ... } だけかってことなんですが。

#define MACRO1() {\
 var1 = foo; \
 var2 = bar; \
}

#define MACRO2() \
 do { \
  var1 = foo; \
  var2 = bar; \
 } while (0)


45 :デフォルトの名無しさん:03/01/17 15:29
>>39
同じ人?
http://pc3.2ch.net/test/read.cgi/tech/1041992392/254-258

46 :デフォルトの名無しさん:03/01/17 15:45
>>44
散々出てくるFAQなんだがそれ。

if (condition)
 MACRO1();
else
 foo();

とやったときのことを考えてみれ。

47 :デフォルトの名無しさん:03/01/17 21:59
C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?

48 :デフォルトの名無しさん:03/01/17 22:01
>>47
C言語をもっと勉強してからもう一度来てください。

49 :デフォルトの名無しさん:03/01/17 22:06
>>47
それはもちろん
ビット演算です。

50 :47:03/01/17 22:08
>>49
具体的にはどんなときでしょうか?

51 :デフォルトの名無しさん:03/01/17 22:08
>>49
ビット演算はなんの役に立つのでしょうか?

52 :デフォルトの名無しさん:03/01/17 22:17
2で割るとき。
//まあ、最適化があるから、ふつーは意識しないのだが。

53 :デフォルトの名無しさん:03/01/17 22:20
フラグ、ラスタオペレーション、RGBマクロ、ウィンドウメッセージの分解、擬似乱数生成
などなどなどなど…

54 :デフォルトの名無しさん:03/01/17 23:18
>>51
ハードウェアレベルで絶対に必要

55 :_:03/01/17 23:47
教えてください

Cでsnprintfを自作することになりました。
参考になる資料とかありましたら教えてください。
フリーで使えるソースが何処かに落ちていると良いのですが。


56 :デフォルトの名無しさん:03/01/17 23:53
>>55
vsnprintf 呼んじゃえ。

というのは冗談で。

というか、他人のソースに頼っちゃダメー。
そんなに難しくないはずだぜ。
面倒なだけで。

57 :デフォルトの名無しさん:03/01/17 23:54
>>55 はマルチですので放置で。

58 :デフォルトの名無しさん:03/01/17 23:54
>>55
あー、ちくしょー、マルチかよ。

59 :デフォルトの名無しさん:03/01/18 08:04
9 名前:通りすがりのマルチ ◆CHii/cVw [sage] 投稿日:02/08/30 02:32 ID:o6nfHHaL
>>2
あんまり言いたくないが、人の二番煎じのネタでゲッターやって楽しいか?
舞みたいにオリジナリティ出したら。

【社会】少年チャンピオンで連載中の漫画家を中傷した元同級生男に550万円賠償命令
http://news2.2ch.net/test/read.cgi/newsplus/1030642180/
http://news2.2ch.net/newsplus/kako/1030/10306/1030642180.html

60 :デフォルトの名無しさん:03/01/18 08:04
マルチっちゅーか、
No.49のスレが2つあるのが問題なのでは?

61 :age:03/01/18 15:19
age

62 :デフォルトの名無しさん:03/01/18 22:12
double a[8];
a[0] = 0.0;
として、a[0]に0が入らないってどういうこと?


63 :デフォルトの名無しさん:03/01/18 22:14
>>62
その後の何かの処理で書き換えた、とか。

64 :デフォルトの名無しさん:03/01/18 22:14
>>62
それはあなたの脳みそが暴走しています。

65 :デフォルトの名無しさん:03/01/18 22:23
>>63
書き換えてる箇所なんてないのに勝手に
変わるんです。
a[0]=0.0;とした直後は0.0が入っていて
ある行でいきなり変な値が入って・・・。
わけわからん



66 :デフォルトの名無しさん:03/01/18 22:26
double b[8];
double a[8];
a[0] = 0.0;
printf("%f\n", a[0]);
b[8] = 1.0;
printf("%f\n", a[0]);

67 :デフォルトの名無しさん:03/01/18 22:32
short x;
double[8];
double[0] = 0.0;
*((int*)&x) = 3.8;

68 :デフォルトの名無しさん:03/01/18 22:33
int x[8];
double[8];
double[0] = 0.0;
x[8] = 3.8;

69 :デフォルトの名無しさん:03/01/18 22:33
どっちだ?

70 :デフォルトの名無しさん:03/01/18 22:39
double b[1], a[8];
b[1] = 1.1;

71 :65:03/01/18 22:42
for(i =0; i<8; i++){
a[i] = 0.0;
}
u_int XX, YY, U_bar, V_bar;
u_int *X, *Y, *u_bar, *v_bar;
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;

X[0] = 355; Y[0] = 435;
X[1] = 747; Y[1] = 429;
X[2] = 747; Y[2] = 453;
X[3] = 355; Y[3] = 458;
X[4] = 97; Y[4] = 281;
X[5] = 889; Y[5] = 256;
X[6] = 882; Y[6] = 326;
X[7] = 10; Y[7] = 347;
というコードにしてて、
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;
をなくすとa[]が書き換えられなくなりました。
どういうことなんでしょうか?


72 :デフォルトの名無しさん:03/01/18 22:48
こりゃ重症だあ

73 :65:03/01/18 22:58
>>72
どこが悪いのでしょうか?

74 :デフォルトの名無しさん:03/01/18 23:10
>>65
ネタだと思いたい・・・
C言語の配列は0から始まるって知ってた?

つまりどういうことかというと
int ary[16];
と宣言すると
ary[0] から ary[15] までの範囲が使えるの


75 :65:03/01/18 23:16
>>74
0から始めてると思うんですけど?
どういうこと?

76 :デフォルトの名無しさん:03/01/18 23:18
>>62
printf("%lf",a[0]);
'l'を付けて出力して見て。
double で、宣言しているわけだから。

77 :デフォルトの名無しさん:03/01/18 23:19
0から14で、15個
double a[8];なら
8個のdouble型を0から7番地まで確保。

78 :デフォルトの名無しさん:03/01/18 23:20
>>75
XXとYYが配列で定義されてないから、X[0]〜X[7]とY[0]〜Y[7]も存在しません。
存在しない物に代入しようとすれば、結果は神のみぞ知る。

79 :74:03/01/18 23:21
>>65
じゃぁ >>66 は何かね?

double b[8];
(中略)
b[8] = 1.0;

b[7] までしか使えないんだってば
0〜7まで指折りながら数えてみろ


80 :デフォルトの名無しさん:03/01/18 23:22

    ∧ ∧___  ダッコ♪
  /(*゚ー゚) /\
 /| ̄∪∪ ̄|\/
 |     |/
     ̄ ̄ ̄ ̄



81 :デフォルトの名無しさん:03/01/18 23:23
正確にはX[0]とY[0]は存在するか。
X[1]〜X[7]とY[1]〜Y[7]はどうなってるか知らないよ。

82 :デフォルトの名無しさん:03/01/18 23:23
>>80
おとなしくしてろ

83 :デフォルトの名無しさん:03/01/18 23:29
??:「大人しくしていろ>>83

83:「はい」

84 :デフォルトの名無しさん:03/01/18 23:32
>>73
要するに、ポインタってのが何なのかが分かってないってこと。
まぁ、初心者が大抵陥る状況なわけだが。

85 :デフォルトの名無しさん:03/01/18 23:37
>>65
ポインタと配列は違います
そこを中心に、もう一度、出直しましょう

86 :デフォルトの名無しさん:03/01/19 00:20
>>76
printf("%lf", f);
printf("%f", f);

どちらも同じです。

printfのプロトタイプは
 int printf(const char *, ...);
なので、...の部分は型情報がありません。
したがって、Cの規約により、...の部分に置かれた
float型の値は格上げされ、doubleで渡されます。

87 :デフォルトの名無しさん:03/01/19 00:35
ポインタが分からん奴はアホ。

88 :デフォルトの名無しさん:03/01/19 00:39
ポインタを勉強する前にまず
パソコンを分解してマザーボードの仕組みを勉強しよう。

89 :デフォルトの名無しさん:03/01/19 00:45
ディスプレイとキーボードとマウスとスピーカーとマイクと
ADSLモデムとプリンタと本体に分解しました。

90 :デフォルトの名無しさん:03/01/19 00:58
>>89
ディスプレイとキーボードとマウスとスピーカーとマイクと
ADSLモデムとプリンタ
はパソコンではありません。

91 :デフォルトの名無しさん:03/01/19 02:43
液晶とボディとスマートポインターと赤外線ポートとカメラと
モデムとUSBとその他中身に分解しました。

92 :デフォルトの名無しさん:03/01/19 02:54
>>91
それでは仕組みの勉強を始めてください。

93 :デフォルトの名無しさん:03/01/19 03:16
QAスレなのにツレねーな
ここは単発質問スレ防止・厨房吸収スレじゃねーのか?
答えたくないなら無視するだけで煽るなや

94 :デフォルトの名無しさん:03/01/19 03:53
>>93
どこにQがある

95 :デフォルトの名無しさん:03/01/19 04:00
>>94
>>2>>46>>93>>94

96 : :03/01/19 05:03
>>1
またテンプレ貼らなかったのか・・・
いつになったら冬厨は消えてくれるんだ。

97 :デフォルトの名無しさん:03/01/19 06:42
>>86
long double はどうなりますか?

98 :デフォルトの名無しさん:03/01/19 06:43
>>96
>>1-6

99 :デフォルトの名無しさん:03/01/19 10:28
>>97
gccなら"%Lf"

100 :デフォルトの名無しさん:03/01/19 11:08
>>99
そういう意味じゃなくてlong doubleを...に渡すとどう型変換されるかということについて聞いているんだと思うけど。

101 :デフォルトの名無しさん:03/01/19 12:12
>>100
VC++ のヘルプだと...

・実引数が float 型であると、関数呼び出しの前に double 型に拡張されます。
・符号付きまたは符号なしの char型、short 型、列挙型、ビットフィールドは、整数の上位変換によって符号付きまたは符号なしの int 型に変換されます。

しかないから、多分そのまま渡されるんだろ。


102 :デフォルトの名無しさん:03/01/19 12:12
>>100
long doubleがdoubleに格下げになる事はないだろう。

103 :デフォルトの名無しさん:03/01/19 12:56
あつしキラ〜〜イ。

104 :デフォルトの名無しさん:03/01/19 18:27
long double ld = 12345;
printf("size: %u\n", sizeof(ld));
printf("bit image: %08x %08x %08x %08x\n", ld, -1, -1, -1, -1, -1, -1);
printf("value: %Lf\n", ld);

size: 12
bit image: 00000000 c0e40000 0040400c ffffffff
value: -40960.000000
(MinGW gcc 2.95.2)

という事で、101-102 は正しいっぽい。
99 は嘘っぽい。

105 :デフォルトの名無しさん:03/01/19 18:33
>>104
いや、MinGWでlong doubleが正しく表示されないのは、msvcrt.dllを
使っているからだそうだよ。

106 :デフォルトの名無しさん:03/01/20 05:42
>>105
何でそんな事をしてるんだろう?

107 :デフォルトの名無しさん:03/01/20 10:46
>>106
余計なDLLを使わないようにするため。


108 :デフォルトの名無しさん:03/01/20 12:49
5つのデータを入力し、
昇順に並び替えて出力するプログラムを作成しなさい。

109 :デフォルトの名無しさん:03/01/20 13:38
>>108
alert(prompt("", "3 2 4 1 5").split(/\s+/g).sort(function(a, b) { return a - b; }).join(" "));

110 :デフォルトの名無しさん:03/01/20 20:51
Ruby 万歳!

111 :デフォルトの名無しさん:03/01/20 21:44
突然で申し訳ないですが、
回文判定部分を,文字列を受け取るとその文字列が回文なら 1 を、
そうでないなら 0 を返す関数を設計し,置き換える。
という風にしたいんですが、以下のやつからどうしたらいいんでしょうか?
詳しい方どうか教えてくださいませ。
#include <stdio.h>
#define MAX 100

main()
{
char string[MAX];
int n, i;

/* input */
printf("string = ");
scanf("%s", string);

/* strlen */
for (n = 0; string[n] != 0; n++) {
/* 何もしない */
}

/* reverse */
for (i = n - 1; i >= 0; i--)
putchar(string[i]);

putchar('\n');
}


112 :デフォルトの名無しさん:03/01/20 21:57
教えてください。
C言語でBMI計算式を書きたいのです。計算式は体重÷(身長×身長)です。
ほとんど初心者なので、一番簡単な計算式でお願いします。


113 :デフォルトの名無しさん:03/01/20 22:05
>>111
「回文判定部分を (略) 置き換える。」って書いてあるけど、
そのプログラム中に回文判定部分ないぞ。

114 :デフォルトの名無しさん:03/01/20 22:49
>>112
課題を丸投げするな。
自分の考えやどこまで出来ているのかを書いた方がいいよ。


115 :デフォルトの名無しさん:03/01/20 22:51
BMI=taijuu/(shincho*shincho);

116 :デフォルトの名無しさん:03/01/20 23:04
struct hoge {
 int foo : 1;
 int bar : 2;
}

こんな構造体を発見したのですが、 : ←これって何してるんですか?

117 :デフォルトの名無しさん:03/01/20 23:10
>>116
ビットフィールドです。

118 :デフォルトの名無しさん:03/01/20 23:14
>>112,115
OK


119 :デフォルトの名無しさん:03/01/21 08:31
for文がよく使われる状況のように、
変数をインクリメントしながらループさせたいのですが
for文だと必ず1回は実行されますよね?

1回も実行されない状況があるような場合には、
while文中でi++とかやるしかないのでしょうか?

120 :デフォルトの名無しさん:03/01/21 08:33
> for文だと必ず1回は実行されますよね?

いいえ。

int i;
for(i = 0; i >= 0; i++)
  printf("実行されませんよ %d\n", i);

121 :デフォルトの名無しさん:03/01/21 09:19
>>119
必ず一回は実行されるのはdo〜while

122 :デフォルトの名無しさん:03/01/21 09:21
>>120
それは実行されますがなにか?
for(i=0;i<0;i++)でしょ。

123 :119:03/01/21 09:58
うぁ〜
恥ずかスィ
今までずっと勘違いしてきてました。
for(a;b;c)
でaは前、bとcは後に実行されるのかと…

124 :デフォルトの名無しさん:03/01/21 10:26
for(int i = 0; i >= 0; )
〜;


125 :デフォルトの名無しさん:03/01/21 11:25
for( ; 1 == 0 ; );

126 :120:03/01/21 11:48
>>122
すまなかった

127 :デフォルトの名無しさん:03/01/21 12:12
> aは前、bとcは後に実行されるのかと…

違う・・・。

for(i = 1; i <= 10; i++)
  printf(%d\n", i);

これを goto に直すと、

i = 1; /**** a ****/
loop:
if(i <= 10) /**** b ****/
goto next;

printf(%d\n", i);

i++; /**** c ****/
goto loop:
next:
...

こんな感じ。
a と b が前、c が後。

128 :デフォルトの名無しさん:03/01/21 13:44
2のべき乗数を昇順に表示するプログラムをつくれ。
どこがまちがってるかわかる?

#include <stdio.h>
int main(void)
{
int i, no;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 0;
while (i < no)
{

i++;

printf("%d ", 2^i );
} putchar('\n');

return(0);
}

129 :デフォルトの名無しさん:03/01/21 13:51
>>128
それは、べき乗を求める、演算子では、ない

130 :デフォルトの名無しさん:03/01/21 14:10
もうすこしわかりやすくおねがいします

131 :デフォルトの名無しさん:03/01/21 14:17
^は、べき乗を求める、演算子では、ない

132 :デフォルトの名無しさん:03/01/21 14:19
というか、C にべき乗を求める演算子はない。
べき乗を求める関数はあるけど。

133 :デフォルトの名無しさん:03/01/21 14:23
わかりました
もう少し考えてみます

134 :126:03/01/21 14:36
#include <stdio.h>
int main(void)
{
int i, no, sum;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 1;
while (i < no)

{

i = i * 2;

printf("%d ", sum );
} putchar('\n');

return(0);
}

これだとなにがだめなの?
だめなりゆうがわかんないです

135 :デフォルトの名無しさん:03/01/21 14:42
>>134
sumの、値は、何よ?

136 :デフォルトの名無しさん:03/01/21 14:42
>>134
> これだとなにがだめなの?
コンパイラの警告レベルを最大にしていないから
sumはいつ初期化されている?


137 :デフォルトの名無しさん:03/01/21 15:14
つうか、これも問題あると思うが。
i = i * 2;

138 :U ◆CZtFsGiu0c :03/01/21 15:42
理由も何もなにがだめなのかも書いてないじゃん。
まあおそらくsumになにも代入してないのが問題だと思うけど:-)


139 :112:03/01/21 15:49
>>114
申し訳ありませんでした。
一応、いろいろなものから、見よう見真似で作ったのですが
ほんとに、切ってくっつけたりしただけなので自身がなかったもので。

#include<stdio.h>
int main() {
double weight = ;
double height = ;
double bmi;

bmi = weight / ( height * height );
return(0); }

間違っている場所を教えていただけますでしょうか。
ほんとに全くの初心者で、ごめんなさい(><

140 :デフォルトの名無しさん:03/01/21 15:52
>>139
何その = ; って。

141 :デフォルトの名無しさん:03/01/21 16:01
釣りでしょ.

142 :デフォルトの名無しさん:03/01/21 16:17
#include<stdio.h>
int main() {
bmi = weight / ( height * height );
return(0); }

>112
>ほとんど初心者なので、一番簡単な計算式でお願いします。

簡単でいいならこれだけでいいんじゃん?

143 :デフォルトの名無しさん:03/01/21 16:18
>>139
1.weightってなに?
2.stdio.hは使いたいの?
3.最後の} の前に改行しようや
4.int main(){return 0;} じゃだめなんか?
5.0で除算はできんだろ

結論。間違っていない場所=五行目。 かな

144 :デフォルトの名無しさん:03/01/21 20:36
1.体重で良いんじゃない?

145 :128:03/01/22 06:46
昨日の問題なんですが
整数を入力してください:19
2 4 8 16

こんな感じで実行結果がでるようにしたいんですが
実行結果が
2 4 8 16 32
となってしまいます。
なぜですか?
#include <stdio.h>
int main(void)
{
int i, no, sum;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 1;
while (i < no)

{

i = i * 2;

printf("%d ", i );
} putchar('\n');

return(0);
}

146 :デフォルトの名無しさん:03/01/22 06:54
>>145
判定後にiを二倍しているから

147 :128:03/01/22 07:01
そうすると、どうすればいいのでしょうか?

148 :デフォルトの名無しさん:03/01/22 07:07
>>147
そういうことは自分で考えるようにしないと力がつかないぞ

149 :128:03/01/22 07:15
昨日から考えてるんだけどね・・・
わかんなくて
ヒントをください

150 :デフォルトの名無しさん:03/01/22 07:18
>>149
「判定後にiを二倍している」のが問題なんだから「判定前にiを二倍する」

151 :デフォルトの名無しさん:03/01/22 07:19
>>149
一行ずつコード読んでみ
プログラムは書いてある通りにしか実行されないんだから
読めばどう実行されるのか手に取るようにわかる

152 :128:03/01/22 07:20
できたよ
ありがとうございました

153 :デフォルトの名無しさん:03/01/22 07:24
for使った方がいいと思うんだけどな

for(i=1;i<=no;i*=2) /* 2からにしたかったらi=2に */
printf("%d ",i);

154 :デフォルトの名無しさん:03/01/22 07:40
>>153
恐らく本当はループの後にもiを利用するのだろう

155 :126:03/01/22 07:55
i*=2 これの意味はなんですか?

156 :デフォルトの名無しさん:03/01/22 07:59
>>155
i=i*2

157 :デフォルトの名無しさん:03/01/22 07:59
i=i*2

158 :126:03/01/22 08:11
サンクス
またくるね

159 :デフォルトの名無しさん:03/01/22 08:14
126(^_^;)

160 :デフォルトの名無しさん:03/01/22 08:23
お前らいい奴だな

161 :デフォルトの名無しさん:03/01/22 08:34
\ はなんと読むのですか??
* はなんと読むのですか??
<>はそれぞれ何と読むのですか??
$ は「ドル」でいいのですか??
% は「パーセント」でいいのですか??


162 :デフォルトの名無しさん:03/01/22 08:54
>>161
ちったあ検索しろよ。
http://www.cqpub.co.jp/od/editors/saka/kigou.htm

163 :デフォルトの名無しさん:03/01/22 09:46
\ イェン

164 :デフォルトの名無しさん:03/01/22 10:42
\ BackSlash

165 :デフォルトの名無しさん:03/01/22 11:00
その文字書いといて、バックスラッシュですか?

*アスタリスク
<>小なり大なり
$ダラー
%百分率

166 :デフォルトの名無しさん:03/01/22 11:21
> その文字書いといて、バックスラッシュですか?
( ´Д`)オイオイ・・・

167 :デフォルトの名無しさん:03/01/22 11:24
まじっすかー

168 :デフォルトの名無しさん:03/01/22 11:29
( ´Д`)まじっすョー

169 :デフォルトの名無しさん:03/01/22 11:30
その文字じゃないバックスラッシュキボン
全角禁止で

170 :デフォルトの名無しさん:03/01/22 11:36
構造体の仕様変更が出て、幾つかの変数を追加、追加した変数の処理を組み込んでコンパイル。
すると突然異常終了が発生。

変更箇所を見比べても、異常終了する原因がつかめず、仕方が無く
変更箇所を1つずつ前のソースに組み込んでは実行して、組み込んでは…でチェック。

すると、構造体に新たにある名称の変数を追加してコンパイルすると落ちることが判明。
その構造体の中で重複しているわけでもないのに・・・

int length;

これを組み込むと落ちる。

int len;

に変えると落ちなくなった。

こういう現象ってどういう理由が考えられますか?? マジでこれ以外は影響なく、lengthでもLengthでもLenGthでも落ちます。
わけわかんねえよ〜

171 :デフォルトの名無しさん:03/01/22 11:38
//////////\\\\\\\\\

172 :デフォルトの名無しさん:03/01/22 11:44
>>170
length にしたときと len にしたときの出力ファイルの差を取って何がどうなってるのか調べてみてはどうだろうか?

173 :デフォルトの名無しさん:03/01/22 12:44
#define len
とかしとらんよな?

174 :デフォルトの名無しさん:03/01/22 12:51
しとらんよな?

175 :デフォルトの名無しさん:03/01/22 12:56
>>172
あーそっか。やってみますわ。

>>173
やってません。つか、ローカル変数や他の構造体でもlengthは使いまくってる模様


176 :デフォルトの名無しさん:03/01/22 13:03
#define if while

177 :デフォルトの名無しさん:03/01/22 13:05
どれくらい意味があるの?それ>>176

178 :デフォルトの名無しさん:03/01/22 13:05
>>177
むかつくやつのソースにこっそりと書き加える
#define int charの方がいいかな

179 :デフォルトの名無しさん:03/01/22 13:13
>>178 それのせいでデスマーチ開始。

180 :デフォルトの名無しさん:03/01/22 13:42
>>170
「落ちる」ってどういうタイミング?
  1. 起動直後
  2. 特定のstep
  3. 不定

「こーすれば逃げられる」って方法で安易に逃げると、
他に潜在バグがありそうな気もするし。

原因わかったら、公開して欲しいっす。

181 :170:03/01/22 14:54
>>180
2: ですね。何度目かのmallocで落ちます。

確かに、原因不明のまま「回避できた!」というのは
仕事である以上できる限りやりたくないのですが、
とりあえず結果を急いでいるお客さんのために
結果が出せるかどうかを優先してます。

報告した後に調査しよ・・・・くそー

182 :デフォルトの名無しさん:03/01/22 15:05
_length で落ちる?

183 :180:03/01/22 15:20
mallocでつか・・・。
メモリ管理が甘い(と言われている)Windows系だとしても
変数名を変えると落ちなくなるっていうのが解せませんね。

int length ; の位置に int dummy ; を書いて、その下に
lengthを置いても同じ?

なんの解決にもならないレスでスマソ。
頑張って下さい。

184 :デフォルトの名無しさん:03/01/22 15:32
確保してないメモリにアクセスしてる。どこかで。

185 :デフォルトの名無しさん:03/01/22 15:34
んだな、メンバ名云々とは無関係なバグが顕在化した悪寒

186 :デフォルトの名無しさん:03/01/22 18:42
ポインターのポインターを確保してないので
セグメントエラーがでてるとにらんでみた。

187 :デフォルトの名無しさん:03/01/23 00:22
  ∧_∧   
 ( ´∀`)< ぬるぽ

188 :デフォルトの名無しさん:03/01/23 00:39
>>170
実は構造体の順番をコンパイラがスペル順で入れ替えてて
どっかのコンパイル済みライブラリが再コンパイルされずに
そのままアクセスするためにメモリを破壊してるとか…

189 :デフォルトの名無しさん:03/01/23 00:50
>>188
> 実は構造体の順番をコンパイラがスペル順で入れ替えてて

そんなコンパイラは、今すぐ捨てろ。ANSI 非互換だよ。

190 :デフォルトの名無しさん:03/01/23 01:23
>>187 ガッ

191 :デフォルトの名無しさん:03/01/23 02:09
>>189
ANSI互換だったら考えるまでもなく
変数名変えただけで結果が変わるはずが無い罠

192 :デフォルトの名無しさん:03/01/23 03:26
>>191
プログラムにバグが潜んでたら、その限りではないよ。
以前に、プログラム名(の長さ)によって実行速度が大幅に変わる
とかいうのがあったけど、それと似たような原因じゃないかな。

193 :デフォルトの名無しさん:03/01/23 03:33
そういやコメント行を消したら落ちる、
コメント行を残せば動く、
というようなこともありました。

上述されてるように不正なメモリアクセスが原因でしたけども。

194 :デフォルトの名無しさん:03/01/23 03:34
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/     
 (_フ彡        / ←>>187

195 :デフォルトの名無しさん:03/01/23 03:49
おまいら空域読めてるか?

どうやら俺には無理らしいぞ

196 :デフォルトの名無しさん:03/01/23 03:55
>>195
タイーホ

197 :デフォルトの名無しさん:03/01/23 04:54
>>192
プログラム名の長さによって実行速度が変わるというのは、
ごくごく簡単にいうと、以下のようなことであるらしい。

・プログラムが起動されたときにプログラム名をスタックに積む
・これをCではargv[0]で参照できる
・プログラム名の長さによって初期の(main突入直後の)スタックの伸張度合いが変わる
・ところで、x86系CPUでは、doubleにアクセスする場合、
 それが8バイト境界以外の領域(8の倍数番地以外から始まる領域)に
 置かれているとペナルティが発生する(実行速度が低下する)
・プログラム名の長さによってdoubleがスタックに積まれる位置が変動する
 それは8バイト境界におさまらない場合ももちろんある
・したがってプログラム名の長さによって実行速度が低下する場合がある

えーと短く説明するためにかなりはしょってます。興味のある人は
http://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
を参照のこと。

198 :デフォルトの名無しさん:03/01/23 05:00
>>192
変数名を実行ファイルにまで持ち越すようなコンパイラ/リンカが存在するのか?
でなければ、そんな事が原因でプログラムが誤動作する事はあり得ないが・・・。

199 :197:03/01/23 05:01
んで、これが今回の話にどう影響してくるかというと…
あんまり関係ないような気がする。

普通構造体のメンバ名なんてのはコンパイルが通ると
単なるオフセットの表現にしかならないはずで、
名前を変えた程度ではオフセットは変わらない。
(メンバの型が変われば当然オフセットは変わる、こともある)

デバッグオプションをつけたとしても、
構造体のメンバ名は実行ファイルなどに影響を及ぼさないと思うし。

本当に構造体のメンバ名だけを変えて実行に影響があるのなら
とても興味深い話なんだが、正直原因が思いつかないな。

200 :197:03/01/23 05:05
>>198
デバッグオプションつけた場合はありうる。

もっともここでの話は変数名ではなく構造体のメンバ名だったはずなので、
関係ないとは思うんだが…

201 :デフォルトの名無しさん:03/01/23 05:17
結論
コンパイラのバグで桶?

202 :デフォルトの名無しさん:03/01/23 05:29
No.

203 :デフォルトの名無しさん:03/01/23 05:29
>>201
まてまて。それは最後の最後に疑うべきところだ(w
170の報告をまとうではないか。おれは楽しみにしてるぞ。

204 :201:03/01/23 05:38
>>202&203
では保留と言う事で170の凱旋を待つとしよう

205 :デフォルトの名無しさん:03/01/23 06:56
せめてコンパイラ名を言い残してから出撃して欲しかったな

206 :170:03/01/23 11:12
>>197
FreeBSDではないけど、Linuxでの開発なんで関係あるかも・・・?

int len;
unsigned char type;

新たにいっこ追加したら、また落ちるようになった。
今度は、

unsigned len;
unsigned char type;

にしたら動く・・・なんだ?バイト境界関係の問題でもあるのか?

未だ原因不明・・・・(;´д⊂


207 :170:03/01/23 11:13
失礼、

unsigned char len;
unsigned char type;

で動いた。

208 :デフォルトの名無しさん:03/01/23 11:31
>>206
もっと他のとこも見てみろって。
絶対どこかで変なメモリアクセスしてるから。

209 :デフォルトの名無しさん:03/01/23 11:33
言っても無駄だな、俺のコードに問題ないのにエラーが出る、と思い込んでるパターン

210 :170:03/01/23 12:53
いや、俺のコードじゃないから面倒な話なんだが。
担当者が年始早々失踪して、火の車なプロジェクトの手伝いですわ。

211 :デフォルトの名無しさん:03/01/23 12:54
>>206
そのメンバは末尾に追加したのか? それとも途中か?
あと、全プログラムをリコンパイルしてるか?

つーか、デバッガ使って追いかけたりしないのか?

212 :170:03/01/23 13:00
>>211
デバッガの使用は禁止されています(;´д⊂

213 :デフォルトの名無しさん:03/01/23 13:05
>>212
そんなの無視しろ。

214 :デフォルトの名無しさん:03/01/23 13:13
>>209
purify系のメモリリーク検出ツールとデバッガがないと
絶対そのバグ潰すのは無理だと断言しよう

>>212
んなアホな...

215 :170:03/01/23 15:39
>>212は偽者

だが間違ってはいない。禁止はされてないけど環境がない。

>>211
末尾に追加しました。

つーか、メモリ関係チェックしてみると、あちこちで破壊っつーかなんつーか・・
誰だよこれ組んだヤシは!

216 :デフォルトの名無しさん:03/01/23 15:53
#define PI 3.14
const float PI = 3.14

このふたつって、どこが違うんでしょうか

217 :デフォルトの名無しさん:03/01/23 15:56
>>216
恐らくは const float PI の方は記憶容量を使うが、プログラム中
に繰り返し出てきた場合はかえってメモリ領域を節約できる可能性あり。

218 :216:03/01/23 15:58
まだよく理解できませんが、ありがとうございます

219 :デフォルトの名無しさん:03/01/23 16:08
>>216
前者は単なるテキストマクロだが、後者は変数として扱われるので型チェックが入る。
定数を定義する時、配列の要素数などに使うのでなければ後者にすべし。

>>217
(゚Д゚)ハァ?
一体どういうメモリ領域の計算をしてるんだ?

220 :デフォルトの名無しさん:03/01/23 16:15
>>219
言い方が悪かったかもしれん。
const float PI は変数としての記憶領域を必ず使うが、#defineの場合
はマクロなので、変数としての記憶領域は使わない。しかし出てくる
度にコードが少しずつ長くなっていく可能性があると言いたかった。

floatの例だとわかりにくいが、char *s = "hogehogehoge"; などの例を
考えてみればわかりやすい。これと #define s "hogehogehoge"を比較
してみれば、*sの方は "hogehogehoge" がメモリのどこかに確保される
が、一度しか確保しない。それに比べて#define sの方は、一度も使わな
ければ確保されないが、もし使うと使う度にメモリを消費していく。

コンパイラによっては同一の文字列リテラルはマージする場合もあるから
一概には言えないが。

221 :219:03/01/23 16:16
書き忘れ。
const は書き換え不能だが変数なので、普通の変数と同じようにスコープを限定
できる。

222 :デフォルトの名無しさん:03/01/23 16:16
>>219
constの方は即値にならないと言いたいんじゃない?


223 :219:03/01/23 16:18
>>220
納得しますた。

224 :219:03/01/23 16:18
>>222
最適化によって即値になることもあるよ。

225 :デフォルトの名無しさん:03/01/23 16:19
コマンドライソで渡す引数の3番目の文字が
(つまり$hoge omaemona で言うところの"a")
何々だったらあーせよってしたいんですけど
argv[1][2]みたいな指定方法は可能でしか??

226 :デフォルトの名無しさん:03/01/23 16:21
>>224
それは分かっている。
アドレスを得るようなことをすればメモリーにおかれるだろうけど。

>>225
他にどうしろと?
*(argv+1)か?

227 :226:03/01/23 16:22
三番目の引数じゃなくて三番目の文字か(^_^;)
とにかくargv[1][2]でOK

228 :デフォルトの名無しさん:03/01/23 16:27
>>224
こういう場合ってやっぱり最適化はかからないのかな?

const float PI = 3.14;
*(float*)&PI = 3.;

エラー無しで通るね。

229 :デフォルトの名無しさん:03/01/23 16:32
>>225
それくらい訊く前に試せよ

230 :デフォルトの名無しさん:03/01/23 16:38
試せるじょうきょうにないのです・・・
すみません

231 :デフォルトの名無しさん:03/01/23 16:40
>>230
不幸だな。コンピュータやコンパイラの動作を人間が脳内シミュレート
しなければならないのか。俺だったら発狂するかも。

232 :デフォルトの名無しさん:03/01/23 16:50
次スレ
http://pc3.2ch.net/test/read.cgi/tech/1042646178/l50

233 :デフォルトの名無しさん:03/01/23 16:51
>>232
氏ね

234 :デフォルトの名無しさん:03/01/23 18:44
>>232
次スレでなく 兄弟 でしょ?

235 :山崎渉:03/01/23 19:57
(^^)

236 :デフォルトの名無しさん:03/01/23 20:00
X on Windows+ オフィシャルガイドブックについているCDから
X on Windows LEをインストールして、C言語を使っていましたが、
values.hというヘッダーファイルが無いようです。
これって、LE版だからですか?
あと、どうすればよいですか。

237 :デフォルトの名無しさん:03/01/23 21:23
up

238 :デフォルトの名無しさん:03/01/23 21:37
質問です 参考書から激しく抜粋なのですが
typedef struct node_tag{
struct node_tag *next; /*次ノードへのリンク*/
struct node_tag *prev; /*前ノードへのリンク*/
void *data;
}node_t;
っていうリスト構造体があったとして
int list_is_empty(node_t *head)
{
return head==head->next;
}
って関数があるとします
参考書によるとリストが空かどうか判断する関数らしいのですが
なんでhead->nextなheadを返すことによって
真か偽かを判断できるのでしょうか?
厨房でごめんなさい

239 :デフォルトの名無しさん:03/01/23 21:42
>>238
両方ともNULLを指しているか、nextが自分自身を指していれば==に
なるね。どちらかで空を表現してるんだろう。

240 :デフォルトの名無しさん:03/01/23 21:46
>>239
headがNULLの時はまずいと思ふ

241 :デフォルトの名無しさん:03/01/23 21:55
>>240
そう言われてみればそうだな。
NULL->nextなんてのはあり得ないから。

242 :デフォルトの名無しさん:03/01/23 22:03
間にデータが一つも無いって表現の方があっているでしょ?
head->next==tailとか

243 :デフォルトの名無しさん:03/01/23 22:08
リストの末尾(リング構造だから先頭の一つ手前でもある)にでも、空のノードを
一つ入れるようにしてるんじゃないの。リストが空の時はノードはその一つだけ
しかないから、当然 next も prev も自分自身を指すようになる。

だから head == head->next で判断できるのではないかと。

244 :デフォルトの名無しさん:03/01/23 22:15
headを初期化(初期設定)しているところを探してみそ>238

245 :238:03/01/23 22:17
あっ なんとなくわかったぽです
headが空の場合はnextもprevもあるはずないんだから
head自身がnextでありprevにもなるってことですか?
それで>>240さんはheadが空なんだから
nextも何も表現できないはずってことを言ってわけですよね?


246 :デフォルトの名無しさん:03/01/23 22:24
ぬるぽ->next

247 :デフォルトの名無しさん:03/01/23 22:40
K&LのC言語って、どんな言語で作られたんですか?

248 :デフォルトの名無しさん:03/01/23 23:16
>>247
ラテン語。

249 :デフォルトの名無しさん:03/01/23 23:16
>>247
韓国語。

250 :デフォルトの名無しさん:03/01/23 23:17
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        / ←>>246

251 :デフォルトの名無しさん:03/01/23 23:17
>>247
K&Lとはなんぞや。

K&Rのことであれば、開発者に聞け。
バージョンによっても違うだろうし。
初期の開発者はデニス・リッチーさんだ。

252 :デフォルトの名無しさん:03/01/23 23:18
L&R

253 :デフォルトの名無しさん:03/01/23 23:19
K&L = 韓国語 + ラテン語


という事か。

254 :デフォルトの名無しさん:03/01/23 23:26
>>253
Korean & Latinか。

255 :デフォルトの名無しさん:03/01/23 23:44
K&L とは 関西&言語 の略で日本では関西弁と呼ばれています

256 :デフォルトの名無しさん:03/01/23 23:50
キリ番ゲッツ

257 :デフォルトの名無しさん:03/01/24 01:11
>>219数字定数って型チェック入らないの?

258 :デフォルトの名無しさん:03/01/24 06:33
俺はこれから川口浩探検隊に行って来る。

259 :デフォルトの名無しさん:03/01/24 10:56
アールとエルの区別もできないくせに!

260 :デフォルトの名無しさん:03/01/24 15:06
このスレにおける電波の送受信を許可します。

261 :デフォルトの名無しさん:03/01/25 05:51
if ((denpa = socket(AF_DENPA, SOCK_STREAM, 0)) < 0) {
perror("socket");
exit(1);
}


262 :デフォルトの名無しさん:03/01/25 14:12
>>261
AF_DEMPAじゃストリーム通信できないYO!
SOCK_DGRAMで常にSO_BROADCASTが立ってるYO!


263 :デフォルトの名無しさん:03/01/25 20:38
>>216
そういえばgccってconstで定義してる変数の値を変えてもウォーニング出るだけなんですけど、
これはCの仕様なんですかね?
g++だとエラーになるんですが。

264 :デフォルトの名無しさん:03/01/25 20:56
>>263
gccのバージョンとコンパイルオプションでけっこう挙動が変わるぞ。
Cについては昔の資産を活用するために、寛容にしていることが多い。

265 :デフォルトの名無しさん:03/01/25 21:19
return 0
ってなんでゼロなの?いったいどういう意味?return 1
とかreturn 2とかじゃあかへんのですか?

266 :デフォルトの名無しさん:03/01/25 21:24
>>265
その関数の仕様を決めた奴に聞け。

267 :デフォルトの名無しさん:03/01/25 21:27
>>266
????と思ったが、別に>>265はmain関数だとは言っていないな。
>>266の言うとおりだな(笑)

268 :デフォルトの名無しさん:03/01/25 22:02
main関数のことなら既出過ぎる品(藁

スレにひとつはある質問だな。

269 :デフォルトの名無しさん:03/01/25 22:18
もちろんメインのリターン零だ
どういうこと?

270 :デフォルトの名無しさん:03/01/25 22:30
>>269
main() でも、一緒だ。

271 :デフォルトの名無しさん:03/01/25 22:57
randで65536こ乱数作りたいんだけどどうすんですか

272 :デフォルトの名無しさん:03/01/25 23:01
(int)(rand()*65536)
・・・かな

273 :デフォルトの名無しさん:03/01/25 23:01
rand() % 65536;
???????????????

274 :デフォルトの名無しさん:03/01/25 23:03
int i , arr[65536];
for(i = 0;i < arr;i++)
 arr[i] = rand();

275 :デフォルトの名無しさん:03/01/25 23:03
それだと32767?までしかでないんすけどどうでしょうか
無知なおいらを助けてくだせい

276 :デフォルトの名無しさん:03/01/25 23:04
それって・・・・・・どれ??

277 :デフォルトの名無しさん:03/01/25 23:05
Cのrandは整数を返すのか・・・

278 :デフォルトの名無しさん:03/01/25 23:05
>>269
シェルで && とか || とかで使う
バッチなら if errorlevel とか

279 :272:03/01/25 23:05
コンパイラが16ビットなのかな。
受け取り元をunsignedにしてみたら?

280 :デフォルトの名無しさん:03/01/25 23:06
>>265
return EXIT_SUCCESS か return EXIT_FAILURE にしたら?
(#include <stdlib.h>で)

281 :271:03/01/25 23:12
unsignedにしてもどうも・・・
まあ頑張ります みなさんありがとうございました

282 :デフォルトの名無しさん:03/01/25 23:15
rand は,周期 2 の 32 乗の乗法合同法を用いて乱数を発生し,
呼び出されるたびに 0〜RAND_MAX の間の疑似乱数を返します。
Borland Turbo C

283 :デフォルトの名無しさん:03/01/25 23:16
>>281
256の乱数を二回取れば良いじゃん

284 :デフォルトの名無しさん:03/01/25 23:16
RAND_MAXが0x7fffなんでしょ。

285 :デフォルトの名無しさん:03/01/25 23:17
R = 256*r1 + r2;

286 :271:03/01/25 23:26
>285
ありがとうございます


287 :デフォルトの名無しさん:03/01/26 00:35
>>271の質問だと>>274の回答が適切な気がする。
for(i=0;i<sizeof(arr);i++)
だけどな。

288 :デフォルトの名無しさん:03/01/26 02:09
int i , arr[65536]; //unsigned?,long?
for(i=0;i<sizeof(arr);i++)
 arr[i] = rand()%65536;


289 :デフォルトの名無しさん:03/01/26 03:31
>>288
16ビットの罠

290 :デフォルトの名無しさん:03/01/26 13:41
ワイルドカードってなんですか?
PC初心者板逝けとか言われるかもしれませんが
厨房でごめんなさい

291 :デフォルトの名無しさん:03/01/26 13:42
>>290
PC初心者板逝け

292 :デフォルトの名無しさん:03/01/26 13:42
*

293 :デフォルトの名無しさん:03/01/26 14:13
>>290
>>292

294 :デフォルトの名無しさん:03/01/26 15:18
?

295 :290:03/01/26 15:28
>>293
ポインタのことですか?

296 :デフォルトの名無しさん:03/01/26 15:57
>295
http://www.geocities.co.jp/AnimalPark-Lucky/2482/shiri.jpg

297 :デフォルトの名無しさん:03/01/26 17:24
配列に値をいれようとすると
access violation とかいうエラーメッセージが出てしまうのですが、
どうしてなんでしょう?

298 :デフォルトの名無しさん:03/01/26 17:26
>>297
int a[100];
a[150] = 38;

299 :デフォルトの名無しさん:03/01/26 17:41
>>298
指定領域以内のところでダメになるので、
他が原因だと思うのですがわかりません。
それに値を参照するときにエラーが出ることもありますし。
一体どういうこと?

300 :デフォルトの名無しさん:03/01/26 17:42
>>299
ソースを出すように。情報が少なすぎてよくわからん。

301 :デフォルトの名無しさん:03/01/26 18:32
>>300
unsigned char *m = new unsigned char[4500*4000];
for(j=0; j<ySize; j++){
for(i=0; i<xSize; i++){
k = j*(xSize_c)+i;
m[k] = t[j][i];
}
}
という感じですが。
何が原因でしょうか?



302 :デフォルトの名無しさん:03/01/26 18:57
>>301
1. new は成功しているのか?
 つーか C++ かよ!! ここは C のスレだぞ。

2. xSize, ySize, t の正体は?

303 :デフォルトの名無しさん:03/01/26 18:57
xSize_c もナー

304 :デフォルトの名無しさん:03/01/26 19:51
>>301
C++のスレへ行け。

305 :デフォルト名無しさん:03/01/26 20:35
>>301
とりあえずキャストをしろ

306 :デフォルトの名無しさん:03/01/26 21:11
stdio.h
などのヘッダーファイルってどうやってみれるか教えれ


307 :デフォルトの名無しさん:03/01/26 21:13
>>306
適当なエディタで開くといいよ。

308 :デフォルトの名無しさん:03/01/26 21:16
>>307
エディタってなんすか?
初心者でスマソ

309 :デフォルトの名無しさん:03/01/26 21:23
メモ帳でみれ

310 :デフォルトの名無しさん:03/01/26 21:24
type stdio.h | more[Enter]

311 :デフォルトの名無しさん:03/01/26 21:26
>>310
なんでパイプするの?

312 :デフォルトの名無しさん:03/01/26 21:29
1ページずつ表示するため

313 :デフォルトの名無しさん:03/01/26 21:31
>>312
そういう意味じゃなくてさ、more stdio.hでいいでしょ?ということ。

314 :デフォルトの名無しさん:03/01/26 21:34
UNIXではたしかにそうだ

315 :デフォルトの名無しさん:03/01/26 21:36
DOSでも同じでは?

316 :デフォルトの名無しさん:03/01/26 21:39
DOSは>>310かmore < stdio.h

317 :デフォルトの名無しさん:03/01/26 21:43
MS-DOS では確かに type stdio.h | more[Enter] か more < stdio.h しかダメだ。
ただし、Windows のコマンドプロンプト (含む 95) では more stdio.h も OK。

318 :デフォルトの名無しさん:03/01/26 22:11
どうでもいいけどmoreコマンドだと見にくくない?
個人的にはnotepad激しく推奨

319 :デフォルトの名無しさん:03/01/26 22:16
質問者の環境がわからなかったので
まあ今頃はエディタが何かを調べてもう見終わってるとは思うけど

320 :318:03/01/26 22:22
ウチは普通に窓だけど
UNIXでもcdコマンドとかdirコマンドとか普通にあるの?

321 :デフォルトの名無しさん:03/01/26 22:25
UNIXでもcdはおなじ
dirはのかわりにlsというのがある

322 :デフォルトの名無しさん:03/01/26 22:46
> cdはおなじ

厳密に言うと違うわけだが

323 :デフォルトの名無しさん:03/01/26 22:47
BSD厨発見

324 :デフォルトの名無しさん:03/01/26 22:50
何で BSD?

325 :デフォルトの名無しさん:03/01/26 23:18
図星のようだな

326 :デフォルトの名無しさん:03/01/26 23:36
意味わからん。

327 :デフォルトの名無しさん:03/01/27 07:19
struct point{
  double x;
  double y;
};

struct point R[100],*Q;
Q = &R[1];

int main()
{
....
}

こんな感じでグローバル変数でポインタを定義したんですけど、gccでコンパイルすると
エラーになります。それで次に
struct point R[100],*Q;
Q = &R[1];
これをmainの中に入れてやると無事コンパイルできます。
なんでですかね?

328 :デフォルトの名無しさん:03/01/27 07:25
struct point R[100],*Q;  ←変数の宣言
Q = &R[1];         ←実行コード

実行コードは関数(この場合はmain)の中に記述する必要がある。


329 :デフォルトの名無しさん:03/01/27 07:28
>>328
定義ではないかと

330 :デフォルトの名無しさん:03/01/27 07:42
>>329
Q=&R[1];はどうみても代入処理だろ。

書くならstruct point R[100],*Q=R+1;

331 :327:03/01/27 07:46
>>328
>Q = &R[1];
これがまずかったのか。そういえばそんなルールあったな。
サンクス

332 :デフォルトの名無しさん:03/01/27 07:49
>>330
struct point R[100],*Q;  ←変数の宣言 // ←これが定義
>>331
>>330のようにしても、初期化自動変数じゃないと出来ないからね

333 :デフォルトの名無しさん:03/01/27 07:52
何か書き間違えた上に変な回答になってるな…
初期化自動変数×
変数を参照する初期化は自動変数○

334 :333:03/01/27 07:58
あれ…出来るね…
ポインタは出来るのかな…?
まぁ良いや、時間がないから調べられないけど
正しい答えは他の誰かが答えてくれるでしょう

335 :デフォルトの名無しさん :03/01/27 08:11
外部への変数はどれぐらい確保できるの?
int A[1000000000]; とかアリ?

あと、関数内の変数で
void a(void)
{
int B[10000000];
//このあとB[n]すべてに値代入。
}
とかやったら外部変数の値を潰してたんだけど、そういうものなの?


336 :デフォルトの名無しさん:03/01/27 08:30
ファイルへのパスを生成するような処理で文字列を使う時、
char *parh = "OMAEMONA";
はポインタ以下の値になにがあるからわからないから危険ですか?
char path[32];
strcpy( path,"OMAEMONA");
と、配列をたくさん確保してからにすべきでしょうか。

337 :デフォルトの名無しさん:03/01/27 08:39
>>335
配列を確保できるサイズは環境依存。
int A[1000000000]; は・・・64 bit 環境ならいけるかもな。
今主流の 32 bit 環境では多分無理だ。

int B[10000000]; と宣言した場合、ANSI 準拠である限り B[0] 〜 B[9999999]
の領域は他の変数とは絶対にかぶらない。
よって外部変数が潰れる事は無いので、何か別のミスをしているだろう。

338 :デフォルトの名無しさん:03/01/27 08:41
>>336
「ポインタ以下の値になにがあるからわからないから危険」 の意味するところが
不明だが・・・。

とりあえず 「C FAQ」 の 「1.32: 以下の二つの初期化の違いは。」 を読んでくれ。
http://www.catnet.ne.jp/kouno/c_faq/c1.html#32

339 :デフォルトの名無しさん:03/01/27 11:03
入力されたデータを整数型かどうか判断するにはどうしたらいいでようか?
以下のプログラムを作ってみたところエラーもでず妙な動作をして終わってしまいます。
int a, b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d\n",a);
printf("%d\n",b);

340 :デフォルトの名無しさん:03/01/27 11:14
すばらしい、ハラショー


341 :デフォルトの名無しさん:03/01/27 11:20
もう少し状況を報告しる!
ひょっとしたら新しい発見があるかもしれない。

342 :デフォルトの名無しさん:03/01/27 11:54
scanf() で数字以外を入力したら無限ループにはまると思うが・・・

343 :デフォルトの名無しさん:03/01/27 12:32
>342
そーですか?
%sでふつーに文字列とか入れちゃってますが、、、

344 :デフォルトの名無しさん:03/01/27 12:57
C言語で24bitのビットマップのファイルを読み込み、そのまま保存するってどうしたらいいの?
バイナリモードで開いて、ヘッダとデータ部分を切り離してそれぞれ配列に保存して、それをfwriteで書き込み専用のファイルに書くってだけだと思うんだけど…

具体的なソースを示してくれたら嬉しいです。

345 :デフォルトの名無しさん:03/01/27 13:00
そのまま、だったら
何の加工もせずに読み込んで書き出したら良いだけでは?

346 :デフォルトの名無しさん:03/01/27 13:04
>>344
データ部分だけ欲しいのかな
でも、ヘッダがないと、タテヨコのサイズもわからなくなるし、、、

347 :デフォルトの名無しさん:03/01/27 13:15
>>339 scanfの戻り値(a,bに代入される値じゃないよ)は
「変換された項目の数」だから0なら数値が入らなかったということ。
123Aとか入れたら123が変換される。

348 :デフォルトの名無しさん:03/01/27 13:20
CUIのアプリケーションを書いているのですが、
プロセスに入力を与える際、
入力した文字がすぐにプロセスに渡るようにするにはどうしたらいいでしょうか?

つまり、
普通のreadなどを使う際には、
入力時に「hogehoge<LF>」と、最後に改行の入力を必要としますが、
改行を押さずに、hogehogeが
h o g e h o g e と、一文字ずつ即時にプロセスに渡るようにしたいのです。

ご存知の方がいらっしゃったら教えてください。
(「{Cで and/or CUIで}やるかぎり出来ない」ならスレ違いごめんなさい)

349 :348:03/01/27 13:21
と、書き込んで思ったのですが、これはプログラム側の問題ではなく、
むしろ入力サイド(シェル?)の問題なのでしょうか。

350 :デフォルトの名無しさん:03/01/27 13:33
>>348
//Cは最近さわってないんで、わすれてきてるが
getch getche getcharなどの関数で、一文字づつ処理してもNG?

351 :デフォルトの名無しさん:03/01/27 13:33
>>345
 うーん、そうなんですが…
 例えば300×300の大きさのビットマップを、その大きさのままCで読み込もうとする時、なぜか途中で強制終了してしまいます。
 ヘッダ部分のデータの大きさも考慮して大きめに600×600で読み込むと、確かにビットマップは読み込まれるのですが、格納した配列のデータを違うビットマップの画像に保存した際、画像に縦線や横線などの雑音が入っているのです。
 

352 :デフォルトの名無しさん:03/01/27 13:39
該当部のソースを晒せ、読み込んだデータを加工せずに出力してそないな事になるかいな

353 :デフォルトの名無しさん:03/01/27 13:42
ビットマップのソースなんですが…
このサイトのを参考にしていました。
http://asapc1.cc.it-hiroshima.ac.jp/stu/c04/c04.html
画像の縦横の大きさだけ変えてやろうとしたのですがうまくいかず…

>>346
 画像のデータ部分が欲しいです。そのデータ部分を2次元配列に代入して、簡単な処理を目指しています。
 そのために、一番ネックとなる画像の読み込みに挑戦していたのですが、うまくいかず状態なのです つД;)



354 :348:03/01/27 13:43
>>350さん
ありがとうございます。curse関連ですね。調べてみます。
取り急ぎお礼のレスだけしておきます。

355 :デフォルトの名無しさん:03/01/27 13:48
>>353
つーか、画像処理板でするか、こっちでするか、どっちかにしろよ、、、
マルチで書かれてもな。

356 :348:03/01/27 13:58
>>350さん
うーん。
DOSだと手軽にその関数が使えるようですが、UNIXだと面倒なようです。
curse端末がどうのこうの、、、(調査中)


357 :デフォルトの名無しさん:03/01/27 14:17
>>348
http://www.st.rim.or.jp/~phinloda/cqa/cqa9.html
ご参考までに。

358 :デフォルトの名無しさん:03/01/27 14:19
>>356
$stty raw
$./a.out


359 :デフォルトの名無しさん:03/01/27 14:31
0x34 #hoge
0x38 #piyo
0x39 #gabi
0x32 #poyo
0x35 #boyo
上記テキストファイルを読みこみ
下記の処理を行いマスタ
while(!feof(ifp)){
s=getc(ifp);
if(s=='#'){
putc('\n',ofp);
while(!feof(ifp)){
s=getc(ifp);
if(s=='\n') break;
}
}
else {
putc(s,ofp);
}
}
putc('\n',ofp);

そうすると書きこまれたファイルは最終行が
\377となってしまいます・・・
原因がよくわからないっす。
どなたかご教授お願い致します。


360 :348:03/01/27 14:45
調べたところでは、
curse・ioctl・stty
という3つの方法があるようです。
とりあえず、目的の処理はcurse+getchで可能でした。ありがとうございます。
が、思わぬ副作用が出ているので、時間があればioctlの方を調べて試してみます(敷居が高いが。。。)
sttyは最終手段のように紹介されていたのですが、
>>358さんの書かれたようにやってみたら、プログラムから何の反応もなくなり、
Ctrl-Cすら受け付けなくなってしまってビクーリしたので、ちょっと保留です。

361 :デフォルトの名無しさん:03/01/27 14:54
まあ、ちゃんと(?)使うときはプログラムの中で、
入力前に system("stty raw");
入力が終ったら system("stty -raw");


362 :デフォルトの名無しさん:03/01/27 15:20
termsioとか使えない?

363 :デフォルトの名無しさん:03/01/27 15:25
>>360
副作用というのが、どんなものかなという好奇心が・・・
#MSのOSしか今、手持ちになくて試せない

364 :デフォルトの名無しさん:03/01/27 15:31
>>359
sがchar型で宣言されている。かな?
\377は0xFFという意味

365 :デフォルトの名無しさん:03/01/27 15:38
>364サソ

ご回答ありがdございます。

sはちゃんとint型で宣言しているのですが・・・
なんででしょぅ・・・

366 :デフォルトの名無しさん:03/01/27 15:47
01:while(!feof(ifp)){
02:  s=getc(ifp);
03:  if(s=='#'){
04:    putc('\n',ofp);
05:    while(!feof(ifp)){
06:      s=getc(ifp);
07:      if(s=='\n') break;
08:    }
09:  }
10:  else {
11:    putc(s,ofp);
12:  }
13:}
14:putc('\n',ofp);
02行目でEOF(-1)が発生した場合に12行目の処理を行っているから
-1(\377)が出力される

こういう場合、01行目は
while((s = getc(ifp)) != EOF) {
と書くのが定石

367 :348:03/01/27 15:52
>>361さん
ちゃんと(?

system("stty raw");
(入力を受け取る処理)
system("stty -raw");

としたんですが、
そうしても、一文字ずつの読み込みをしてくれませんでした。
というか反応なしで、ただただ入力がエコーされるのみ。。。
前述のように、Ctrl-Cも受け付けてくれなかったので、仕方なくターミナルをDestroyしました。

>>363さん
いや、好奇心を持つほど大したことじゃありません。
対話的な動作を期待するプログラムを書いていたので、
それまでprintfで書いていた部分を書き直すのが大変だなぁと思った。
というだけです(^^;
また、initscr()の時点で、端末がclearされてしまいますよね。

368 :デフォルトの名無しさん:03/01/27 16:03
>366サソ

ほんとありがdございます!
すげぇっす。イパーツで解析なさるなんて。
うらやますぃ。。。

精進イタシマス

369 : ◆Ou1AsATmFg :03/01/27 17:26
つぎのようなプログラムで,変数を配列にして一気に処理するようにするにはどうすればいいのでしょう?ご教授願います.


#include <stdio.h>

void hogera(int *x, int *y, int *z)
{
*x=1000;
*y=2000;
*z=3000;
}

main()
{
int a, b, c;
hogera(&a, &b, &c);
printf("%d %d %d\n",a, b, c);
return(0);
}

370 :デフォルトの名無しさん:03/01/27 17:29
一気に何をしたいのかが分からんのですよ

371 :デフォルトの名無しさん:03/01/27 17:31
>>369
int ia[]={*x,*y,*z};をhogeraに。


372 :371:03/01/27 17:33
アドレスをそのまま入れたかったらint *ia[]={x,y,x};

373 :372:03/01/27 17:33
{x,y,x}じゃなくて{x,y,z}

374 :デフォルトの名無しさん:03/01/27 18:05
多くのアルゴリズムの本がある中
「よくわかるアルゴリズム入門」
 の逆順の線形リストと入力順の線形リスト
 を習得しました。
今度は、まったく違った構造体に
組み込めなくちゃいけない。
typedef struct{
int no;
char name[20];
}Data;

typedef struct __node{
Data data;
struct __node *next;
}Node;

typedef struct{
Node *head;
Node *crnt;
}List;

375 :デフォルトの名無しさん:03/01/27 18:06
void Buff_Node(List *list)
{
Node *ptr=list->head;
Data temp;

while(scanf("%d %s",temp.no,temp.name)!=EOF){
InsertFront(list,temp);
list->head->next=ptr;
ptr=list->head;
}
}
逆順のリストは、できたが入力順のリストはわからない。
 適当な、Buff_Node()入力順をを教えてほしい。

376 :デフォルトの名無しさん:03/01/27 18:57
初心者君ですみませんが、
int型をファイルにバイナリで書きこむ
方法ってありますか??

377 :デフォルトの名無しさん:03/01/27 18:57
fopen(〜,"wb");で、出来たかな?

378 :デフォルトの名無しさん:03/01/27 18:58
あります

379 :デフォルトの名無しさん:03/01/27 18:59
習得したんなら後はそれを応用すりゃあ良いだろうに・・

380 :デフォルトの名無しさん:03/01/27 19:00
>>376
fwrite

381 :デフォルトの名無しさん:03/01/27 19:01
>>379
ぬるぽ

382 :デフォルトの名無しさん:03/01/27 19:04
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩ アアア・・・
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>381

383 :デフォルトの名無しさん:03/01/27 20:30
>>376
man putw

384 :デフォルトの名無しさん:03/01/27 20:31
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩ アアア・・・
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>383

385 :デフォルトの名無しさん:03/01/27 20:35
>>383
man putw

NAME
`putw'--write a word (int)

SYNOPSIS
#include <stdio.h>
int putw(int W, FILE *FP);

...

どうやって使うんでしょうか?

386 :デフォルトの名無しさん:03/01/27 20:39
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩ アアア・・・
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>385


>>385
書いてあるだろ

387 :376:03/01/27 21:06
みなさんご回答ありがdございます。

バイナリで書きこんで、そのファイル開くと
読めなくなってるものですよね??

fopen( ,"wb")で開いても
ファイル開くと見た目普通っす。。。

どうなってんだこりゃー。
どなたか詳しくお教えください。。。
おながいしま・・・す

388 :デフォルトの名無しさん:03/01/27 21:23
>>387
"wb"で開いても、fprintf("%d", ...) なんかで書き込んだら一緒だろ。
fwrite()でも使え。putw()は標準にはないらしいし。

389 :デフォルトの名無しさん:03/01/27 21:31
putw()なんて関数初めて知りますた。勉強になりますね…

390 :デフォルトの名無しさん:03/01/27 21:34
>>389
ならない。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/putw.3.htmlでもfwriteを使えと言っている。

391 :デフォルトの名無しさん:03/01/27 22:06
>>http://www.linux.or.jp/JM/nullpo/LDP_man-pages/man3/putw.3.htmlでもfwriteを使えと言っている

どこに? 

392 :デフォルトの名無しさん:03/01/27 22:09
>>391
ふしあなさんですか?
「説明」の末尾にきっかり書いてある。

393 :デフォルトの名無しさん:03/01/27 22:09
C言語でもWINDOWS上で起動するプログラム作れますか?

394 :デフォルトの名無しさん:03/01/27 22:18
>393
もちろん

395 :393:03/01/27 22:21
>>394ありがとう

396 :デフォルトの名無しさん:03/01/27 22:40
>>390
つまり、linux.or.jpのJMに従え。JMは神!ってことか。

397 :デフォルトの名無しさん:03/01/27 22:42
>>396
理由がわかった上で使いたいのであれば、別に止めはしないわけだが。

398 :デフォルトの名無しさん:03/01/27 22:50
>>396
好きにすれば?

399 :デフォルトの名無しさん:03/01/27 23:42
あつし君はC言語得意なのかな?

400 :デフォルトの名無しさん:03/01/27 23:49
>>399
C なら得意なんじゃないの?

401 :デフォルトの名無しさん:03/01/27 23:53
1人でCなら得意です。

402 :デフォルトの名無しさん:03/01/28 00:43
C sus4 なら

403 :デフォルトの名無しさん:03/01/28 01:13
>>396
もちろん翻訳前のman putwにも書いてあるわけだが。

404 :デフォルトの名無しさん:03/01/28 01:46
>> 348
http://www.nurs.or.jp/~asada/FAQ/UNIX/UNIX.FAQ.html
の「4.1」。
あるいは man termios。ICANON解除、ECHO解除、VMIN/VTIMEを適当に。
curseってなに。cursesだろ。

405 :デフォルトの名無しさん:03/01/28 11:25
文字をsscanfでファイルに書きこむと
それはパックされているということで
よろしいのでしょうか?

406 :デフォルトの名無しさん :03/01/28 13:10
どうしても出来ないんで御教授お願いします。
n及びn+2がともに素数になる数の内15000以上の最小の数値の組み合わせ
nとn+2を求めるプログラムを作成せよ。って問題なんですが
お願いします。

407 :デフォルトの名無しさん:03/01/28 13:20
双子素数だな。
まぁ、ガンガレ

408 :デフォルトの名無しさん:03/01/28 13:25
宿題スレへ逝け

409 :デフォルトの名無しさん:03/01/28 13:30
>>407
双子素数ってなんですか?
どんな感じで関数を定義すればいいのですか?

410 :デフォルトの名無しさん:03/01/28 16:29
>>409
まあ普通のスタイルで定義すればいいと思うよ。
ただ、センセーが古いスタイルの関数定義しか知らない化石のような人なら
古いスタイルで定義しないと減点されるかも知れないけど。

411 :391:03/01/28 18:20
・・・叩かれないもんだな。。

412 :デフォルトの名無しさん:03/01/28 18:28
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩ 
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>391

413 :デフォルトの名無しさん:03/01/28 18:28


414 :デフォルトの名無しさん:03/01/28 19:53
>>406
とりあえず自分で考えろ。
で、C言語のレベルで問題がおきたらまた来い。

85 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)