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

C言語なら、俺に聞け! <28>

レス数が1000を超えています。これ以上書き込みはできません。
0001983 ◆HIHn86y. NGNG
C言語質問スレッド Part 28

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50

・前スレ

<26> http://pc3.2ch.net/test/read.cgi/tech/1026048820/
<25> http://pc.2ch.net/test/read.cgi/tech/1024918442/
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/

コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0002983 ◆HIHn86y. NGNG
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html

【その他】
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html

【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0003983 ◆HIHn86y. NGNG
すまん、前スレ入れ忘れた。

<27> http://pc3.2ch.net/test/read.cgi/tech/1027160374/
0004デフォルトの名無しさんNGNG
>>1-3
カレー
0005ビル・ジョブスNGNG
27歳になりますた
0006260NGNG
#include <stdio.h>

#define PI 3.14 /* 円周率 */

main()
{
float r, S;

scanf("%g", &r);
S = r * r * PI;
printf("%g\n", S);
}

こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?

面積計算は必要です。
出力は
1  3.14
2
3
・
・


な感じになるようにお願いします


0007デフォルトの名無しさんNGNG
fを付けてループ回す
なにが解らないのかもちっと具体的にかきませう
0008デフォルトの名無しさんNGNG
>scanf("%g", &r);
fscanf(fp, "%g", &r);
0009デフォルトの名無しさんNGNG
スレ立てお疲れ>>1
0010デフォルトの名無しさんNGNG
インタプリタもどきを作りたいんですが、
-----
#!/home/foo/bin/prog
aaaa
bbbb
-----
こういう風に起動して、prog(インタプリタ)がコマンド(aaaa,bbbb)を読むた
めにはどうしたらいいですか?
001110NGNG
書き忘れましたが、環境は Linux です。
0012デフォルトの名無しさんNGNG
>>10
stdin
001310NGNG
>>12
stdin は試したのですが、やり方が間違っているんでしょうか。

-- foo.c --
#include <stdio.h>

int main()
{
char c[1024];

fgets(c, 1024, stdin);
printf("c=%s\n", c);

return 0;
}
----
-- foo.sh --
#!/home/bar/bin/foo

aaaaa
-----

これで aaaa を読み込んで表示させたいのですが、foo.sh を起動するとキー
ボードからの入力待ちになってしまいます。
0014デフォルトの名無しさんNGNG
C言語で音楽ファイルの周波数をいじりたいのですが、どんな感じで処理すればいいのでしょうか?どなたか御教授下さい。お願いします。
0015デフォルトの名無しさんNGNG
>>14
フーリエ変換。
0016デフォルトの名無しさんNGNG
>>13
> printf("c=%s\n", c);
system(c);
001714NGNG
>>15
もちろんフーリエ変換はやりますが、フーリエ変換をしたあとで、
周波数帯で区切っていくという処理をしたいのです。
0018デフォルトの名無しさんNGNG
>>14
人間のカタツムリ管はA/Dコンバータと同等の機能らしいので
取り外して解析してみてはどうです?
0019デフォルトの名無しさんNGNG
http://pc3.2ch.net/test/read.cgi/tech/1028474590/l50
0020デフォルトの名無しさんNGNG
>>18
単に

空気振動−>電気

ブリッヂでは?
0021デフォルトの名無しさんNGNG
>>14
WAVをいじれれば判ると思うが。
0022デフォルトの名無しさんNGNG
>>17
周波数領域のデータが得られるんだから後は配列処理だろ。
0023デフォルトの名無しさんNGNG
質問です。
画像を表示させるにはどうすればよいのでしょうか。
0024デフォルトの名無しさんNGNG
>>23
OSと言語と環境とついでにおまえのIQまで全部書いてからもう一度質問しなおせ
0025デフォルトの名無しさんNGNG
>>12
え???

>>10
スクリプトは、#!の行のコマンド名(インタプリタ)に、そのスクリプト自体を
起動したコマンドラインを追加して実行したのと同じになる。
例えば>>13の場合、./foo.sh を実行すると、
/home/foo/bin/prog ./foo.sh というコマンドを実行したのと同じ。
だから、argc, argvで引数を受け取ってそのファイルをオープンしてやれば
いいよ。
0026デフォルトの名無しさんNGNG
>>24
OSはWindows
言語はC
環境は…忘れた
IQは127(2年前)
0027デフォルトの名無しさんNGNG
>>24
> OSと言語と環境とついでにおまえのIQまで全部書いてから
それよりも肝心なのが
 「表示したい画像フォーマットって何?」
じゃないかな?
0028デフォルトの名無しさんNGNG
>>27
bmpです。
0029デフォルトの名無しさんNGNG
>>28
setDIBits()。

俺優しすぎ?
0030デフォルトの名無しさんNGNG
>>29ありがとうございます!
ところで、ヘッダーファイルは何をインクルードすればよいのですか?
それから、setDIBits(ファイル名);でよいのですか?
0031デフォルトの名無しさんNGNG
>>30
(°Д°)ポヵーン
0032デフォルトの名無しさんNGNG
>>30
頼むからここに行ってから質問してくれ。
http://www.kumei.ne.jp/c_lang/

それから、すれ違い。ここで質問しる!

Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/l50
0033デフォルトの名無しさんNGNG
ついでじゃ。
ここいけ。
第26章 ビットマップ画像の表示
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
0034デフォルトの名無しさんNGNG
す、すみません。スレ違いだったのですね。
いろいろ教えてくれて、どうもありがとうございます。
003510NGNG
>>25
なるほど。
勉強になりました。ありがとうございます。
0036デフォルトの名無しさんNGNG
C言語でsin波のポイントを出したいのですが簡単なアルゴリズムあったら教えてください。
1Hz で 最大値500、最小値-500 よろしくお願いします。
0037デフォルトの名無しさんNGNG
ポイントって何?
0038デフォルトの名無しさんNGNG
>>36
サンプリング角周波数は?
003936ですNGNG
double value, radius=0.0;
わかりづらい質問で申し訳ありません。
ちと、作ってみました。

#define TOP_VALUE 500
while( 1 ){
  radius += 0.064;   /* サンプリング周波数に合わせて */
  value = sin( radius ) * TOP_VALUE;
}
こんな感じで大丈夫ですか?
004036ですNGNG


#define TOP_VALUE 500

double value, radius=0.0;
while( 1 ){
 radius += 0.064;   /* サンプリング周波数に合わせて */
 value = sin( radius ) * TOP_VALUE;
}
0041デフォルトの名無しさんNGNG
関数を知らんのかと。
004236ですNGNG
>>41
関数ってC言語の関数ですか?
それとも三角関数ですか??
0043デフォルトの名無しさんNGNG
>>42
で?>>40じゃ駄目なの?
試してないけど動くんじゃないの?
0044デフォルトの名無しさんNGNG
>>43
>>36の言う「ポイントを出したい」ってのは、
「波形をプロットしたい」という意味ではないかと思ってみたり。
0045デフォルトの名無しさんNGNG
>>44
ますます関数だな。
0046デフォルトの名無しさんNGNG
>>1にいいたい!
ちゃんと名前をネタにしてくれ。つまらなくても何でもいい!
「983 ◆HIHn86y.」←こりゃないだろ・・・
0047デフォルトの名無しさんNGNG
どなたか助けてください。

double a;
short b;
a = 0.29;
a = a * 100;
b = a;
printf("%d\n", b);

ってやると28と表示されます。
29と表示させるにはどうしたらよいでしょう?
0048デフォルトの名無しさんNGNG
>>47
丸め誤差、切り捨て誤差、等々を調べる。
0049デフォルトの名無しさんNGNG
>>47
double型からshort型に変換されたからデータが失われているのでは?
0050デフォルトの名無しさんNGNG
質問!
stdio.hって、なんて読むんだ!
ストヂオ ドット エッチ?
0051デフォルトの名無しさんNGNG
>>48
>>49
ども!
はい。意味はなんとなくわかっております。
こういう場合の定石などありましたら教えていただきたいのです。
例えば、0.1を足しとけ。みたいな。
0052デフォルトの名無しさんNGNG
>>50
ストゥドィオ.エチー
0053デフォルトの名無しさんNGNG
>>50
俺は
スタンダード・アイオー ドット エイチ
って読んでる。
0054デフォルトの名無しさんNGNG
スタンダードアイオーピリオドヘッダー
0055デフォルトの名無しさんNGNG
>>51
とりあえず、整数化する時に 0.5 足しとけ。
0056デフォルトの名無しさんNGNG
>>51
short b;
をdouble bにしてみろ。すると、-1になるだろ。
だから、29より1少ない28が出力される。
0057デフォルトの名無しさんNGNG
>>55
ダメプログラマでは?
0058デフォルトの名無しさんNGNG
>>50
そもそもstdio.hとは
スタンダード・インプット・オウトプット.ヘッダーファイル
の略なのだよ。
つまり、stdio.hには正式な読み方はない。
すなわち、自由に発音して結構ということである。
0059デフォルトの名無しさんNGNG
>>56
おー。すごいっす。
ひょっとして、これは大きなヒントですか?
ちょっとかんがえてみます。
0060デフォルトの名無しさんNGNG
>>58
スケベ・タコ・ダメ人間・インポ・オナニー.変態
の略かと思ってた世
0061デフォルトの名無しさんNGNG
>>56
だましましたねー
0062デフォルトの名無しさんNGNG
>>60ワロタ
0063デフォルトの名無しさんNGNG
a = a * 10 * 10;
でいけるよ。
0.29 と 100は桁が違いすぎる。
0064デフォルトの名無しさんNGNG
で、結局stdio.hは何て読むの?
0065デフォルトの名無しさんNGNG
>>63
つまんね。
0066デフォルトの名無しさんNGNG
>>63
うがー。感動しますたー
ちょっといろんな数字で試してみます。
0067デフォルトの名無しさんNGNG
javac ジャバック?
0068デフォルトの名無しさんNGNG
>>64
>>60 以外なら、大体通じるよ。
0069デフォルトの名無しさんNGNG
>>67(゚Д゚)ハァ?
0070デフォルトの名無しさんNGNG
>>67
ハァ――――――(゚Д゚)―――――?
0071デフォルトの名無しさんNGNG
>>63
0.47で破綻しますた。
0072デフォルトの名無しさんNGNG
Cを理解するならコンピュータの構造を理解しないといけないっていうのは本当ですか?
具体的にはどのようなことでしょうか
0073デフォルトの名無しさんNGNG
>>72
機械語
0074デフォルトの名無しさんNGNG
>>72
2進数、16進数、論理演算、IOポート、割り込み、etc...
0075デフォルトの名無しさんNGNG
>>60
海馬の奥から呼び覚ましてくれてありがとう(w
0076デフォルトの名無しさんNGNG
>>72
C++
0077デフォルトの名無しさんNGNG
>>72
用途による。
0078デフォルトの名無しさんNGNG
>>72
最低でも、WindowsXPを設計できるぐらい、コンピュータの構造を理解していないと
文字を画面に出力することは出来ないな。
0079デフォルトの名無しさんNGNG
>>72
最低でも、モニターをチンカスで代用できるぐらい、コンピュータの構造を理解していないと
文字を画面に出力することは出来ないな。
0080デフォルトの名無しさんNGNG
>>72
最低でも、ダスキンにフィルターを交換してもらえるぐらい、コンピュータの構造を理解していないと
文字を画面に出力することは出来ないな。
0081デフォルトの名無しさんNGNG
>>72
最低でも、PCとCRT・LCDの構造について電気電子学・情報科学的に理解していないと、
文字を画面に出力することは出来ないな。
0082デフォルトの名無しさんNGNG
>>81
同感。例えば、マザーボードに乗っているチップセット名だとか。
0083デフォルトの名無しさんNGNG
>>82
その中のトランジスタ数とか。
0084デフォルトの名無しさんNGNG
>>83
RGBの信号だとか。
0085デフォルトの名無しさんNGNG
>>72
最低でも、童貞卒業しないと
文字を画面に出力することは出来ないな。
0086デフォルトの名無しさんNGNG
>>85
女にはできないのか?!
0087デフォルトの名無しさんNGNG
>>72
まあ、そんなに心配するなよ。
童貞用の言語、BASICがちゃんと用意されているから。
0088デフォルトの名無しさんNGNG
>>86
女は生まれながらにして、出力できる。
0089デフォルトの名無しさんNGNG
おんなは入出力
0090デフォルトの名無しさんNGNG
>>72
「最低!! 信じてたのに私をだましたのね!!
私はこれからどうやって生きていけばいいの?
責任とってよ!!!!」

と言われる位コンピュータの構造を理解していないと
文字を画面に出力することは出来ないな。



0091デフォルトの名無しさんNGNG
おんなは入出力
0092デフォルトの名無しさんNGNG
>>63,>>71
俺もこの問題で昔悩みました。
結局、doubleは使わず、固定小数点形式、と考え
100倍に桁上げて整数演算することで逃げたーYO!
0093デフォルトの名無しさんNGNG
IOポートってなんですか?
0094デフォルトの名無しさんNGNG
>>93
10ポート。

1ビットのことだ。
0095デフォルトの名無しさんNGNG
>>94
違うな。
I/Oポート、は「エロポート」の事にきまっとる。
0096デフォルトの名無しさんNGNG
出したり入れたりして熱くなるんだよ。
0097 (-_-)NGNG
          |          |          |
          | リッタイテキニ    .|          | リッタイテキニ
          | ミエル?        |          | ミエル?
        (-_-)        |       (-_-)
        (∩∩)───── .|       (∩∩)─────
      /              |      /
    /                |   /
  /                  | /
0098デフォルトの名無しさんNGNG
http://pc.2ch.net/tech/kako/1016/10161/1016187009.html
0099デフォルトの名無しさんNGNG
みえるよ。
0100デフォルトの名無しさんNGNG
あの、質問なんですが
Cスレの序盤は何故いつもネタスレ化するんでしょうか
0101デフォルトの名無しさんNGNG
立体的に平べったい罠
0102デフォルトの名無しさんNGNG
お前ら大事なものを忘れてるぞ。

角度とかを理解してないと
文字を画面に出力することは出来ないな。
0103デフォルトの名無しさんNGNG
>>102
私のは90度で左曲がりですが何か?
0104デフォルトの名無しさんNGNG
なんかビビビと電波がかけぬけたような気がしないでも無い。
0105デフォルトの名無しさんNGNG
ネタすれに質問でいいのかわかりませんが・・・
最近Javaを使ったWebAPPを作成しているのですが、Excel/Wordを吐き出したい
という要望があげられました。
普通どうするのでしょうか?
私なりにJava-JNI-DLL-(ExcelOLE)を呼び出すと考えたのですがDLLって
基本的にVBのActiveXDLLしか作ったことがないんです・・・
そもそもDLLってAPI DLLとActiveXDLLとあると聞いたのですがこの辺詳
しい書籍とかあるのでしょうか?VC++で作ろうとするとテンプレートで
MAINDLLだかってメソッドが初期で用意されるんですが、この意味もいま
いち謎でして・・
それとも根本的にJava−JNI-DLL(ActiveXDLL)-(ExcelOLE)って不可能?
もっともWindows環境でなければ使えない、Javaで.NETソリューションを
扱うなといわれそうですが
0106デフォルトの名無しさんNGNG
誤爆?
0107デフォルトの名無しさんNGNG




Windows環境でなければ使えない、Javaで.NETソリューションを扱うな



0108デフォルトの名無しさんNGNG
Excelのファイルを吐くWinサーバーを立ててftpかなんかでゲトってのは?
0109超初心者NGNG
ソートとサーチのアルゴリズムは覚えるしかないんですか?
0110デフォルトの名無しさんNGNG
>>109
一回本見ながらでも書いて、あとはそれを利用すればいいんでない?
0111超初心者NGNG
>>110さん
興味はあるんですけど、いまいち勉強の仕方が分からないんですよね。
質問に答えてくださってどうもありがとうですm(__)m
0112デフォルトの名無しさんNGNG
>109
全てのアルゴリズムを丸暗記する必要はなくて、どういうときにどういうアルゴリズムを
使うべきなのか、ってのをきちんと覚えておけば、あとは必要になったときに
書籍やらネットやらで調べればよい。
まあ、主要なアルゴリズは覚えといたほうがいいかもしんないけど
0113じゃかーたNGNG
>>105
http://www.terra-intl.com/jakarta/poi/
ネタにマジレスかこわるい。
0114超初心者NGNG
>>112さん
ありがとうですm(__)m

あと、本読んでるだけだと、やっぱり上達しないですよね?
プログラミングをスラスラ打てる方は、どうやって勉強したんですか?
是非教えて下さいm(__)m
0115デフォルトの名無しさんNGNG
キューにデータを詰める時、必ずしも順番通りでないデータを順番通りに取り出したい
んですが(あるいは入れるときに順番とおりでもいいです。)、調べてみると色々やり
かた(アルゴリズム)があるみたいですが、基本的にソートして全部を舐めないといけ
ない。これはデータの個数が増えると処理時間も増えてしまいます。とにかく軽くでき
ないでしょうか?malloc/freeをその都度しないといけない線形リストもいや〜んな感じです。
ちなみにキューに入れるデータの個数は50個固定だとします。
0116デフォルトの名無しさんNGNG
>114
やっぱ体(手動かして)で覚えるしかないんじゃないかな。
少なくともおれは読むだけでは吸収できない。

>115
50個程度ならあまり違わんと思うが、
配列でやりたいなら、ヒープがいいんでない?
0117116NGNG
てか、50個固定なら、線型リストでもmalloc/free必要ないけどね
0118デフォルトの名無しさんNGNG
キューだけに・・・                                  qsort
0119デフォルトの名無しさんNGNG
>>114
アルゴリズムは別に覚える必要はあるまい。
「ああいうのあったな」というのと、それが載ってる本さえ覚えておけば。
試験じゃないんだから、本見てプログラム書いたって誰もカンニングとは言わん。

最近じゃアルゴリズムに加えてデザインパターンなんてのも覚えといたほうが
いいようだが、ここはCのスレだしあんまし関係ないな(w

ソートとかサーチみたいなのはプログラマにとって基礎体力みたいなもんで、
経験を積めば普通は自然と覚えるもんだ。

言える事は、一度はきっちりと理解しといたほうがいいということかな。
いろんなアルゴリズムに含まれてるアイデアは全然関係ない局面でも
使える場合が多いから。
0120デフォルトの名無しさんNGNG
ずっと心の奥に引っ掛かってたことがあるんです。
15年ほど前にOh!PCかどこかでやってた林晴比古のC言語の入門講座で
関数名は大文字小文字を区別しないというようなことが書かれてた記憶が
あるんですが、そういう仕様の処理系ってあったんでしょうか?
当時は大文字小文字を区別しないリンカも多かっただろうけど、
「結果として区別できない」のと「区別しなくてよい」は別物だと
思うんですが。
あくまでも言語仕様は大文字小文字区別じゃないんでしょうか?
0121名無しさん@カラアゲうまうまNGNG
>>120
それはいくらなんでもデタラメ過ぎるだろ。
0122260NGNG
#include <stdio.h>

#define PI 3.14 /* 円周率 */

main()
{
float r, S;

scanf("%g", &r);
S = r * r * PI;
printf("%g\n", S);
}

こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?

面積計算は必要です。
出力は
1  3.14
2
3
・
・


な感じになるようにお願いします
0123デフォルトの名無しさんNGNG
>>122結果的にマルチ
0124デフォルトの名無しさんNGNG
>>122
根本的にマルチ
0125デフォルトの名無しさんNGNG
むしろ鼠講?
0126デフォルトの名無しさんNGNG
>115
>キューにデータを詰める時、必ずしも順番通りでないデータを順番通りに取り出したい

それはデータ構造にキューを使っていること自体が間違いかもしれないよ。
だって先入れ先出しで処理したいからキューを使うわけでキューの順番を入れ替えるってことは
それはもうキューじゃないと思うんだが。
0127デフォルトの名無しさんNGNG
すみません。この意味を教えて下さい。お願いします。

int fd=open(filename,O_RDWR);
0128デフォルトの名無しさんNGNG
>>127
man open
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/open.2.html
0129デフォルトの名無しさんNGNG
>>115
> キューにデータを詰める時、必ずしも順番通りでないデータを順番通りに取り出したい
> んですが(あるいは入れるときに順番とおりでもいいです。)
意味が分からん。
「任意の順番で入力されたデータをそのデータのキー順に取り出したい」
ということか?
0130デフォルトの名無しさんNGNG
>>127
つぅか既に名が体を表しているな。

>>129
それ、キューじゃない気がするね。
0131デフォルトの名無しさんNGNG
>126
>129
>130
priority queue じゃないの?
0132デフォルトの名無しさんNGNG
>>131
> priority queue じゃないの?
ならば、Cで無理に実装せずにC++のSTLを使う...

# ってCスレで言ってしまって良いのか?
0133デフォルトの名無しさんNGNG
>>131
それならキューに突っ込む段で並べるからそもそもソートしない
0134131NGNG
>133
>並べるからそもそもソートしない
並べることをソートというのでは?
0135133NGNG
キューを使った挿入ソートの一種と見なすならそのとおり>>134
0136デフォルトの名無しさんNGNG
Richard Stevensの詳解UNXIプログラミングで
勉強しています。サンプルコードをコンパイル
しているなかでエラーが出たのですが教えて下さい。

apue/signals/setops.cのなかで

int
sigaddset(sigset_t *set, int signo)
{
    if (SIGBAD(signo)) { errno = EINVAL; return(-1); }

    *set |= 1 << (signo - 1);/* turn bit on */
    return(0);
}
という個所があるのですが、この関数内における
  *set |= 1 << (signo - 1);
という行においてエラーが出ます。gcc-2.95.4における
エラーメッセージは以下の通りです。
setops.c: In function `sigaddset':
setops.c:12: invalid operands to binary |

これはどういう意味なのでしょうか?

使っているLinuxの/usr/include/asm/signal.hにはsigset_tは
#define _NSIG64
#define _NSIG_BPW32
#define _NSIG_WORDS(_NSIG / _NSIG_BPW)
typedef struct {
    unsigned long sig[_NSIG_WORDS]; 
} sigset_t;
このように定義してあります。

gccのコンパイラオプションで回避できるものなのでしょうか?
使っているマシン(i386)でsizeof(unsigned long)を確かめたところ
4バイトでした。
0137超初心者NGNG
質問。Cで素数の足し算のプログラムを具体的に教えてはくれませぬか?
お願いしますm(_ _)m
0138デフォルトの名無しさんNGNG
#define _NSIG64
#define _NSIG_BPW32
これは
#define _NSIG    64
#define _NSIG_BPW  32
の間違いでした。スペース消えてすまそ。
0139デフォルトの名無しさんNGNG
>>136
構造体にビット演算は無理だべ。
オプションいじっても無理。
0140デフォルトの名無しさんNGNG
入力された文字列を,
あらかじめ指定しておいたテキストファイルから削除するには
どうすれば良いでしょうか?
0141デフォルトの名無しさんNGNG
>>137
質問を幾つか
・出題者が「多倍長」ってフレーズを口にした?
・素数そのものはファイルに入っている?それとも計算する?
・ファイルに入っている場合、素数の桁数はどのくらいあった?
0142デフォルトの名無しさんNGNG
>>137
素数の足し算って?
解説きぼーん。
0143デフォルトの名無しさんNGNG
>>140
テキストファイルを読み込んで、メモリ上で文字列を削除して、
それからファイルに書き出す。
0144超初心者NGNG
>>141
・多倍長ってのはいっていません。
・ファイルに入ってるとは素数のプログラムがですか??
・その意味なら入ってはいませんでしたが、問題は100以上、1000
 以下の素数のプログラムを作れとのことでした。。
0145超初心者NGNG
すいません。素数の和のプログラムを作れの間違いでス。。
0146デフォルトの名無しさんNGNG
足し算?
0147デフォルトの名無しさんNGNG
>>144
こちらでプログラムが紹介されています
見ても解らなかったら再度こちらで質問をどうぞ

素数 "列挙" アルゴリズムを極めるスレ
http://pc3.2ch.net/test/read.cgi/tech/1018657457/l50
0148デフォルトの名無しさんNGNG
>>145
「素数の和のプログラム」?
0149デフォルトの名無しさんNGNG
素数を足すことになにか意義があるの?
かけるならいざしらず
0150デフォルトの名無しさんNGNG
宿題?
0151超初心者NGNG
>>149
意義はモレも知りませんが、そうゆう問題がでたんですよ。
0152超初心者NGNG
>>150
まぁそんな感じです。。
0153デフォルトの名無しさんNGNG
>>139
なるほど、そうなんですか。ありがとうございます
0154デフォルトの名無しさんNGNG
>>153
つかincludeもその本に載ってなかったの?
0155デフォルトの名無しさんNGNG
>>154
ヘッダファイルは
#include <signal.h>
#include <error.h>
だけです。

どうにも分からないので放置します(笑
0156*nix厨NGNG
>>155
よこレスですが
その本が、コードと解説で構成されているやつでしたら、
割り込みの解説のあたりに、割り込みレジスタの構成(何レベルとか)が
書かれていますので、それに合わせてsigset_tをint等に書きかえれば
大丈夫です。
0157デフォルトの名無しさんNGNG
>>156
おお、そうなんですか。ありがとうございます。
実は本を読まずにまずはコードばかりを動かしてました(汗
シグナルについて書かれた10章をよく読んでみます。
失礼しました。
0158686NGNG
C言語始めたばっかりで、いまいちわかっていません^^;
コンパイルできないのですが…修正をお願いします^^;
#define MAX 10
#include<stdio.h>
void kan(int a[MAX],int b[MAX],int c[MAX]);
int main(void)
{
int a[MAX]={1,5,3,7,2,10,4,3,8,9};
int b[MAX]={6,1,9,5,4,4,3,3,8,9};
int c[MAX];
int i, total=0;
kan(a,b,c)
}
void kan(int a[MAX],int b[MAX],int c[MAX]);
{
int i,total=0;
for(i=0;i<10;i++)
{
total=a[i]+b[i];
c[i]=total;
printf("%d",c[i]);
}
}
0159デフォルトの名無しさんNGNG
void kan(int a[MAX],int b[MAX],int c[MAX]);←このセミコロンがいらん
{
0160デフォルトの名無しさんNGNG
>>158
次からコンパイルエラーが出たら、そのエラーメッセージをコピペしろ

11行目の
> void kan(int a[MAX],int b[MAX],int c[MAX]);
の最後のセミコロンを削除

あと
> for(i=0;i<10;i++)
で他は全てMAXと書いているのに何故for(i=0;i<MAX;i++)としない?
0161デフォルトの名無しさんNGNG
そこはsizeofで往くべきでは?
0162デフォルトの名無しさんNGNG
total=a[i]+b[i];
c[i]=total;
直接代入したらええがな。
0163デフォルトの名無しさんNGNG
> printf("%d",c[i]);

"%d "とかにしておかないと、結果が読みづらいと思われ。
0164デフォルトの名無しさんNGNG
>>161
> そこはsizeofで往くべきでは?
どこを?
ちなみにkanの中でsizeof a / sizeof a[0]を行っても
10にはならないよ。
0165デフォルトの名無しさんNGNG
もう一つあった。
> kan(a,b,c)
こっちは最後にセミコロンが抜けてる。
0166デフォルトの名無しさんNGNG
えーと、sizeofで疑問なんですけど

char buf[256];
とかあったとして、sizeof(buf) は256になりますが、なんでですか?
bufというのは256バイトのchar配列の戦闘アドレスを指す
constなchar型ポインタだと思ってたので
sizeof(buf)で1が帰ってくるのが自然とか思い込んでました。
FAQ見ても説明つからないし。

まあサイズ帰ってきた方が便利なので今のままの方がいいけど
0167デフォルトの名無しさんNGNG
ポインタで1が返っちゃまずいだろ
0168デフォルトの名無しさんNGNG
>>166
> 戦闘アドレス
そんな物はない。はともかく

> FAQ見ても説明つからないし。
C-FAQ 6章 配列とポインターを小一時間読んでみろ
http://www.catnet.ne.jp/kouno/c_faq/c6.html
特に以下の箇所は音読するように
 6.2:でもchar a[]はchar *aと同じと聞いたことがあるが。
 6.3:Cで"ポインターと配列は同等"というのは何を意味しているのか。
 6.9:配列とは定数ポインターにすぎないと説明してくれた人がいた。
0169686NGNG
158です。下のプログラムでコンパイルできました^^
助言ありがとうございます!
ついでに聞きたいのですが…このプログラムにつぃて口頭試問をするのですが…
どういった質問ができるかいくつか教えて(出題して)もらえますか?
自分なりに答えを考えたいと思うのですが^^;
#define MAX 10
#include<stdio.h>
void kan(int a[MAX],int b[MAX],int c[MAX]);
int main(void)
{
int a[MAX]={1,5,3,7,2,10,4,3,8,9};
int b[MAX]={6,1,9,5,4,4,3,3,8,9};
int c[MAX];
int i;
kan(a,b,c);
}
void kan(int a[MAX],int b[MAX],int c[MAX])
{
int i;
for(i=0;i<MAX;i++)
{
c[i]=a[i]+b[i];
printf("%d",c[i]);
}
}

0170デフォルトの名無しさんNGNG
int main(void)が値をreturnしていないのはなぜか?
0171デフォルトの名無しさんNGNG
まあ
・kanて何?
・MAXを引数にしなかったの?
・printfは何してるの?
が最初か
0172デフォルトの名無しさんNGNG
>>169
> どういった質問ができるかいくつか教えて(出題して)もらえますか?
・そのプログラムは一体何をするプログラム?
0173デフォルトの名無しさんNGNG
>>169
・表示される答えが改行されないけど、君はこれで見やすいのかね?
とか。
0174686NGNG
すいません^^;
170さんと171さんの2つ目がわかりません^^;
0175デフォルトの名無しさんNGNG
>>173
いまそれ書こうと思ってたw
0176デフォルトの名無しさんNGNG
x,yで指定したところに文字を出力させるにはどうすればよいのでしょうか
0177デフォルトの名無しさんNGNG
>>176
せめて環境を。
0178デフォルトの名無しさんNGNG
>>177
OSはWindows
コンパイラはVC++6、0
0179デフォルトの名無しさんNGNG
>>177
緑に囲まれていい所です。
0180デフォルトの名無しさんNGNG
>>176
yの分だけ改行してxの分だけブランクを入れる
0181デフォルトの名無しさんNGNG
>>180
マジデ!?Σ(゚д゚)
0182デフォルトの名無しさんNGNG
>>179
緑?ダム端か?
0183デフォルトの名無しさんNGNG
で、どうなの?
0184デフォルトの名無しさんNGNG
>>179
せめて都道府県名くらいわからないとどうしようもない。
0185デフォルトの名無しさんNGNG
>>184
マレーシアです。
0186デフォルトの名無しさんNGNG
x,y(int,int)
0187686NGNG
174です。
教えてもらえないですか^^;?
0188デフォルトの名無しさんNGNG
>>187
コンソールアプリなのか、windowアプリなのか?
0189686NGNG
WINDOW!
0190デフォルトの名無しさんNGNG
>>188
それは>>174じゃなくて>>176に対するレスでは…
0191デフォルトの名無しさんNGNG
海外のサイトで翻訳ソフトを使って勉強をしたいと思うのですが,
おすすめの翻訳ソフトあります?
プログラム的な事って,ちゃんと翻訳されるのかなぁ?
0192デフォルトの名無しさんNGNG
>>191
最低限の英語力付けるだけで十分だと思うけど。
自作とプログラミングの文章に出てくる単語はほんの僅か。
0193Rina ◆tI333vNE NGNG
面倒でも英語勉強したほうがいいと思うな.
0194デフォルトの名無しさんNGNG
うーんそうですか。
英語辞書買って,あとはなんかのドリルでも買ってがんばります。
ベイヤフーで検索するんでしょうか(すれ違いぎみ)?
0195デフォルトの名無しさんNGNG
>166
>sizeof(buf) は256になりますが、なんでですか?

char buf[SIZE];
と宣言すると式中ではbufはbufの先頭要素を指すポインタに変換される。
このことを知っているとsizeof(buf)はsizeof(char *)と等しいと思うかもしれないが
sizeofはこれを"特別扱い"して配列全体のサイズを返す。
0196Rina ◆tI333vNE NGNG
英単語調べるだけならedictで十分.
0197デフォルトの名無しさんNGNG
基本的に翻訳ソフトの訳文は笑いたい時に読むものだよ
「激しい穴・・・」とか出てくるからね
0198デフォルトの名無しさんNGNG
>>185
apa kabhar?
0199デフォルトの名無しさんNGNG
>>195
おお、便利だな。
0200デフォルトの名無しさんNGNG
>>191
Personal Dictionaryと英次郎を組み合わせる。
これ最強。
バビロンとかよりお勧めだ。
0201デフォルトの名無しさんNGNG
しかし>>190は結果的に板違いのヨカソ
0202デフォルトの名無しさんNGNG
がー!バグだー!
error C2601: 'main' : ローカル関数の定義が正しくありません。
どういうことだ!どこが間違っているんだ!
0203デフォルトの名無しさんNGNG
>>202
ローカル関数の定義が正しくないようだ。
0204デフォルトの名無しさんNGNG
>>179

なんかしらんが 
ワロタ
0205デフォルトの名無しさんNGNG
>>202
しらん
0206デフォルトの名無しさんNGNG
>>202
質問の仕方が正しくないようだ
0207デフォルトの名無しさんNGNG
>>202
mainを検索する
考える
宣言がたぶん変なんだろう
0208デフォルトの名無しさんNGNG
Windowsでフルカラー表示するためのソースプログラムって
どっかにありませんか?

コンパイラはBorlandC++使ってます
0209デフォルトの名無しさんNGNG
>>208
意味がわからん
0210デフォルトの名無しさんNGNG
もう変更する必要のない関数をファイルにまとめて書きこみたいのですが,
普通は,やっぱり変更する必要がなくなっても,その関数が関係のある関数群をまとめたファイルに書きこんでおきますか?
0211デフォルトの名無しさんNGNG
>>210
ライブラリだね。
0212デフォルトの名無しさんNGNG
>202
コンパイルが通らないのはバグ以前の問題。がんがれ。
0213 NGNG
>>202
{}の対応がとれていない。
0214デフォルトの名無しさんNGNG
>210
DLLにしちゃえ。
0215デフォルトの名無しさんNGNG
typedef po {
char *u;
char *c;
int aa;
} PO_PO, *PPO_PO;

#define UHU (*BOKO)(PPO_PO)

と宣言した場合、

BOKO

というのは実体がなくてもいいの?
 a = (UHU)uhyo;
みたいにかかれているコードが普通にコンパイルとおっているので、
これで問題ないのか先輩がおかしいのかわからないです。
先輩は「これで問題なく動くはず」と公言していますけど・・・
0216デフォルトの名無しさんNGNG
>>215
ああ、問題ない
0217デフォルトの名無しさんNGNG
Dev-C++ってどうよ?
0218デフォルトの名無しさんNGNG
>>217
今はβ版だよ。途中でMingW-3.0になったのだが、何か不都合があった
のか、またMingW-2.95.3に戻されているよ。

かなり安定してきた。
0219検索しるNGNG
会話がわからねーよ
ウワァァァァァン
0220デフォルトの名無しさんNGNG
そんなあなたにここをオススメする
http://pc3.2ch.net/test/read.cgi/tech/1028450760/
0221デフォルトの名無しさんNGNG
あるソースを読んでいて、

 typedef type1 type2[6]; /* (1) */

とあり、

 type2 val;

と使われていました。良く分からないまま、とりあえず、

 typedef type1[6] type2; /* (2) */

とは違うものなのだろうかと試してみたところ、これはコンパイルエラーになりました。

質問
(1) は (2)(コンパイルエラーになりますが)のイメージのようなものなのでしょうか?
それともまったく違う意味なのでしょうか?
0222デフォルトの名無しさんNGNG
イメージって?
意味がわからん
0223デフォルトの名無しさんNGNG
>>221
要素6っこの配列を作るときに
type1 a[6];
って書くのと同じこと。
0224デフォルトの名無しさんNGNG
>>221
はやく良くなってね。お大事に・・・
0225デフォルトの名無しさんNGNG
>>221
イメージではないです。
言うなれば、テキスト型のバイナリですね。 
0226デフォルトの名無しさんNGNG
質問です。
#include<stdio.h>
int main(void)
{
int a;
while(1){
printf("入力しなさい\n");
scanf("%d\n",&a);
printf("%dです。\n",a);
}
return(0);
}
これを実行して、最初に1を入力したとします。
すると、変数aには1が代入されて、1です。と表示さますよね。
で、無限ループですから、また入力します。
今度は2を入力したとします。
そうすると、また変数aには2が代入されるはずですよね?
しかし、1です。と出力されてしまいます。
なぜでしょうか。
0227デフォルトの名無しさんNGNG
>>226
scanfの \n は不要
0228デフォルトの名無しさんNGNG
>>227ありがとうございます。
なぜ、\nがあると正しく動いてくれないのですか?
0229デフォルトの名無しさんNGNG
コマンドインタフェース仕様のスケジュール管理プログラムの
例題ソースみたいなのどこかにないですか?
0230221NGNG
>>223
ありがとうございます。

>>222,224,225
アホですんません。
なんか、光化学スモッグ注意報が出てて、気分悪いんです。
Java の int[6] val; のイメージだったんだけど、まあそれはどうでも良いや。
0231デフォルトの名無しさんNGNG
> なんか、光化学スモッグ注意報が出てて、気分悪いんです。
ワラタ
0232デフォルトの名無しさんNGNG
>>228
qで終了できるエディタがあった場合、それで作ったテキストファイルにはqは出てこないはずである。
0233デフォルトの名無しさんNGNG
>>232
誤爆でしゅか?
0234デフォルトの名無しさんNGNG
>>232
viはZZで終了できるけど何か?
0235デフォルトの名無しさんNGNG
:wq 2ch.bbs

Σ(゚Д゚) !!!
0236デフォルトの名無しさんNGNG
/* 文字列を大文字に変換 */
char *touppers(char *s)
{
 static char buf[256];
 char *p = buf;
 for(;;p++,s++){
  *p = toupper(*s);
  if(*s == '\0') break;
 }
 return buf;
}
このような関数を作ったとき、引数と戻り値は
それぞれconst char*にするべきなんでしょうか?
いまいち判断基準がわかりません。
0237デフォルトの名無しさんNGNG
>>236
そもそも関数出た時点でその戻り値のアドレスの内容は不定なんだが。
0238デフォルトの名無しさんNGNG
const以前に,
関数内部のバッファのポインタをかえすのはやめましょう.
0239デフォルトの名無しさんNGNG
>>237
かぶった
スマソ
0240デフォルトの名無しさんNGNG
>>237
> そもそも関数出た時点でその戻り値のアドレスの内容は不定なんだが。
はずれ。
static char buf[256]; なので255以上の文字列を入力せず、
かつ、マルチスレッドで動作していなければ正常に動作する。
char buf[256]; ならば不定。
0241237じゃないけどNGNG
どっちにしろ次に使うときにその領域は壊されるわけだから
「正常に動作する」とは言えないのでは?
0242236NGNG
>>240
printf("%s %s", touppers("foo"), touppers("bar"));
でも破綻しますけどね。

staticのアドレスを返すのはinet_ntoa()などでもやっていることで
仕様をきっちり理解したうえで使う分には問題ないですよ。

唯一の問題は論点がずれていることです・・・
0243デフォルトの名無しさんNGNG
>>236

引数はconst char *でいいと思うんだけど、戻り値については、
constなのは戻り値そのものであってそのポインタの指している値ではないので、
const char *touppers() でなくて、char *const touppers() に
なると思うんだが…ちょっと自信なし。
0244デフォルトの名無しさんNGNG
>228
>なぜ、\nがあると正しく動いてくれないのですか?

たとえば
10 20 30
をscanfで読みとるときはscanf("%d%d%d", &a, &b, &c);でいい。入力フィールドは空白ではない
文字列とされる。逆にいうと空白文字で区切られているものは自動的にscanfが区切ってくれている。
注意しないといけないのはこの空白文字はブランク、タブ、改行、復帰、垂直タブ、改ページと
定義されているということ。だから
10 20 30 \t \nとあってもscanf("%d%d%d", &a, &b, &c);でちゃんと読み込める。

逆にこれをscanf("%d%d%d\n", &a, &b, &c);,scanf("%d%d%d ", &a, &b, &c);とすると
スペースや改行を読み込もうとするけど空白文字に埋もれて見つけることができなくなる。
0245デフォルトの名無しさんNGNG
>>240
ごみん、static見てなかった。
確かに保持されるわ。
でも、トリッキーといいわけ。
0246デフォルトの名無しさんNGNG
>243
char *const touppers()
だと「ポインタの指している位置を変更できない」って意味でしょ?変じゃない?
たとえば、strlen関数とかに渡せなくならない?やったことないのでわからんが
0247246NGNG
>strlen関数とかに渡せなくならない?
全然大丈夫だね。寝起きでねぼけてたスマソ
0248デフォルトの名無しさんNGNG
たとえば型がhogeの2次元の配列 array[N][M] を宣言した場合には、いつも
N × M × sizeof(hoge) バイトの連続したメモリがとられるものと
考えて間違いないでしょうか。それとも連続した M × sizeof(hoge) バイトの
ブロックが適当な(一定の)パディングつきでN個とられる場合もあるのでしょうか?

そして、それはどこで定めてあるのでしょうか? ANSI?
0249デフォルトの名無しさんNGNG
>>248
処理系依存
0250デフォルトの名無しさんNGNG
>>249
そうなの?
多次元配列も要は配列を要素にもつ配列なわけだから
連続したメモリ領域を確保するのでは?
0251ふぅ〜 ◆WKHVTRQg NGNG
「先月7/25の、衆院安保委の会議録」を読んでいる内にこの事を歪曲報道した
マスコミに怒りを覚えたよ。だって、俺の記憶によると北朝鮮の惨状のみを
強調する内容だった。北朝鮮援助と難民受け入れへの意識を喚起するような
感じだった。
西岡参考人の「北朝鮮問題の本質は安全保障問題なんです。」が一番要約された
一言でキーワードに成り得るのだが。
0252251NGNG
うわぁ、もろ誤爆スルーしてちょ。
0253デフォルトの名無しさんNGNG
>>250
struct {
 long l;
 char c;
} a[8][8];

なんて配列があったら大抵の処理系で、パディングですかすかだと思うけど。
0254デフォルトの名無しさんNGNG
>>253
泣きそうですな。
0255デフォルトの名無しさんNGNG
質問です。
ポインタは具体的にどういうときに使われるのですか?
絶対にポインタを理解しろ言われるのですが、そこまで重要なのですか?
0256デフォルトの名無しさんNGNG
>>255
IOポート叩くときとか。
0257デフォルトの名無しさんNGNG
>>255
ポインタ無かったらC使う局面なんて・・・。
0258デフォルトの名無しさんNGNG
>>257
まったくだ。ポインタなかったら誰がこんな糞言語使うかってかんじ。
0259デフォルトの名無しさんNGNG
>>253
それは構造体のパディングであって配列の連続性とは無関係。
0260デフォルトの名無しさんNGNG
>>248
1次元配列作って、自分で2次元的にアクセスしたらいいじゃん
0261デフォルトの名無しさんNGNG
>255
int a=10;
int b=20;
これを入れ替える
void swap(int* a,int* b);
を作成する時。
参照とか言われそうだけど。
初心者にはこの辺が一番分かりやすい答えでは
なかろうか。
もっと奥の深い質問なら失礼。
0262デフォルトの名無しさんNGNG
>>260
y*(n / x) + n % xって奴ねw
0263デフォルトの名無しさんNGNG
>>255
Dynamicなことやる時、でかい型を引数にとったり返したり。
あとは文字列操作のインサイドを理解する時。
0264デフォルトの名無しさんNGNG
Cしか知らないんだけどCから派生した言語以外にはポインタ(それに相当するもの)ってないの?
どの言語にも似たような機能はあるもんだと思い込んでたんだけど
0265デフォルトの名無しさんNGNG
>>264
C++ そのもの+参照
Java 参照
C# 参照
Perl リファレンス
PHP リファレンス

Cから派生してネイティブコードはけるのはC++だけという罠。
0266デフォルトの名無しさんNGNG
>>264
Pascal系にもポインタはある。ポインタ演算ができないので、Javaの参照に近い。
Fortranは 77 にはないけど 90 からは導入されたはず。
0267デフォルトの名無しさんNGNG
>>265
待て。Objective-Cがあるぞ。ネイティブコード吐けるぞ。
0268デフォルトの名無しさんNGNG
>>267
記憶にございませんw
0269デフォルトの名無しさんNGNG
江藤
お前には失望した。
0270デフォルトの名無しさんNGNG
>>269
田中、すまんな。
0271デフォルトの名無しさんNGNG
いや、謝るべきなのは佐藤だろ。
0272269 NGNG
いや.. 野球板に投稿するつもりが誤爆しちゃっただけなんだけど..
0273佐藤(実名)NGNG
ご、ごめん。
0274( ・∀・)ヨロシクね!NGNG
オマエら!
俺にCRCについて原理からプログラミングの仕方まで詳しく教えてください( ゜д゜)タノム!
0275デフォルトの名無しさんNGNG
>ポインタは具体的にどういうときに使われるのですか?
>絶対にポインタを理解しろ言われるのですが、そこまで重要なのですか?
絶対に理解しましょう。重要です。というか基本です。
今でも知らずにポインタを使っているはず。

必ずでてくるのが参照渡し。261のswap()関数ね。引数の値を操作しようとするときはポインタを
渡さなくちゃならない。

それから関数に配列を引数に渡したい場合。配列そのものは渡すことができないのでポインタを
渡す。

後は文字列。文字列リテラルなんかはポインタに変換されて扱われている。
0276デフォルトの名無しさんNGNG
556
0277デフォルトの名無しさんNGNG
>>275
引数いじるって邪道な気がするけどね。
無名構造体とかできればいいんだろうか?
0278デフォルトの名無しさんNGNG
関数呼び出しもポインタに属する。
0279デフォルトの名無しさんNGNG
そういえば配列そのものは引数として渡せないけど
構造体はそのもの自体渡せるんだよね?
じゃあ構造体の要素に配列があった場合はどうなるのですか?
0280デフォルトの名無しさんNGNG
スタックがあふれそうなので構造体はあまり渡さないでください(ポインタを渡してください)。
0281デフォルトの名無しさんNGNG
>>280
そう言う逃げが嫌いだ・・・。
0282デフォルトの名無しさんNGNG
>>279
もちろん引数として渡すこともできるし、代入もできる
0283デフォルトの名無しさんNGNG
>277
>引数いじるって邪道な気がするけどね。

引数いじる関数って標準関数でもいくらでもありますけど。fgetsとか strcpyとか
全部そうだし、、、。何で邪道?
0284( ・∀・)ヨロシクね!NGNG
教えてくれょぅ(=゚ω゚)ノ
0285デフォルトの名無しさんNGNG
>>284
知っているところまで書いてみたら?で、わからないとこを聴く。
0286( ・∀・)ヨロシクね!NGNG
>>285
正直CRCについては全くわかんないのです。
検索かけていくつかソースみたんですが、さっぱりでした。
0287デフォルトの名無しさんNGNG
>>283
いや、概念的によ。
ある引数を入れたならある戻り値が帰ってくる。
あくまで引数はinputであるべきじゃないのかと。
だからPerl見たいに戻り値を複数返せるようになってたらいいんじゃないのかと。
0288デフォルトの名無しさんNGNG
>>287
ポインタを引数にして、メンバへのポインタ演算子を使った値変更も不可ってこと?
0289デフォルトの名無しさんNGNG
>287
>ある引数を入れたならある戻り値が帰ってくる。
>あくまで引数はinputであるべきじゃないのかと。

気持ち的には分からなくもない。けど実際複数の返値は返せないし配列も返せないから
そういう場合は仕方ない。そのためにconstがあるわけだしポインタさえ渡さなければ
変更されない、逆にポインタを渡すのは操作を許すということだからこの仕様はそれなりに
いいと思う。個人的にはC++の参照渡しの方が怖い。

よそのHPで自分よりスキルがあると思われる人ってサンプルコードをみると大抵ポインタを渡して
関数ないで操作してるんだよね。何でかなと思っていたら大きいプログラムを書く場合は大抵
エラー処理用に戻り値を使うからだと気がついた。だからちょろっとしたサンプルコードを
書くときは返値がvoidでポインタを渡すような関数を書いている。
0290デフォルトの名無しさんNGNG
>>289
> 大きいプログラムを書く場合は大抵エラー処理用に戻り値を使うからだと気がついた。
だからC++とかは例外があるんだよね。(他にも理由はあるが)
エラー処理は例外、戻り値は戻り値として使えるから。
0291デフォルトの名無しさんNGNG
質問します

今基礎的な算数のプログラムをやっているのですが
#include <stdio.h>の下にくるのが
ある本には"int main(void)"とかいてあって
ある本には"main()"とかいてあります
また
ある本には最後に"return(0)"といれるようにいってあるのに
ある本にはなにもいれてません
そして
どっちの方式でやっても結果は変わりません
どうしてでしょうか
0292デフォルトの名無しさんNGNG
またある本には
void main(void)
や
int main(int argc,char **argv)
などとかかれています。
0293デフォルトの名無しさんNGNG
>>291
C言語なら引数なしの括弧だけは評価されない
mainのreturn 0は明示的にやらないとシステムがやってくれる。
0294デフォルトの名無しさんNGNG
>>291

int main(void)とmain()は同じ。
正しくはint型(例えば0)を返すべきだけど、コンパイラによってはエラーにしない。
0295デフォルトの名無しさんNGNG
相当良くある質問だけど、
気にしなくていいよ。
理解できる時になれば一瞬で理解できるから。
多分あなたのレベルじゃ
>293は理解できないでしょうし。
嫌味じゃなくて、いい意味でいまは置いておくことを
薦めるよ。
0296デフォルトの名無しさんNGNG
俺の本なんてdouble main(void)だぜ。
0297デフォルトの名無しさんNGNG
ということはグローバルやスタティック変数使わなくても
要素が配列ひとつだけの構造体を作れば
配列の値渡しが出来るというわけですね?
まあそんなことする必要性があるかどうかはわかりませんが
可能か不可能かということなら可能ということですよね?
0298デフォルトの名無しさんNGNG
>>297
一行目の意味がわからんが、可能なんじゃないかしらん?
Javaとかだとそうするみたいだし
0299デフォルトの名無しさんNGNG
>>297
可能
0300デフォルトの名無しさんNGNG
>>291
ttp://www.st.rim.or.jp/~phinloda/cqa/cqa6.html#Q5
でも読んで見なされ。
0301291NGNG
質問に答えてくれた方ありがとうございます
ではとりあえずどっちでもいいということで保留しときます
きっとそれだけ自由な言語なんですね
0302デフォルトの名無しさんNGNG
int型って、4バイトだったり8バイトだったりするらしいけど、
それはソースをコンパイルするパソコンによって違うの?
それとも、コンパイル後にできた実行ファイルを実行する
パソコンによって違うの?
0303デフォルトの名無しさんNGNG
>>302
そら、ターゲット依存にせざるを得ないわな。
0304 NGNG
>>302
コンパイラによります
0305デフォルトの名無しさんNGNG
いや、あの
void main(void)
とか書いてある本って、捨てたほうがいいと思うんだけど。
書いたやつの規格の理解が怪しい証拠だし。
0306デフォルトの名無しさんNGNG
8バイト… いや、つっこむのも大人気ないとは思うんだが。
0307デフォルトの名無しさんNGNG
>>286
http://www.ncfreak.com/cecilia/memo/edcode.html#crc
後、
「C言語による最新アルゴリズム辞典」奥村晴彦著
この本に詳しい解説がある。買って読め。
0308デフォルトの名無しさんNGNG
>>286
あと、
ftp://ftp.matsusaka-u.ac.jp/pub/algorithms/src/
ここにある
crc*.c
ってやつをひっぱて置け。
0309デフォルトの名無しさんNGNG
>>306
ILP64モデルのコンパイラなら、intが8バイト(64bit)になるよ。
0310( ・∀・)ヨロシクね!NGNG
>>307
早速そのHP読んできます。
アルゴリズムの本には手を出すなと昔ここでいわれたのでいまだに読んでないんですよ。
とりあえず立ち読みしてみるとこにします。。情報ありがとうございました

>>308
とりあえずダウソしてみました。
今中身みてますが、やはりわかんないかも・・・
とりあえず>>307が教えてくれたHPに概念がのってるので、それ読んだあと再度見てみます。
ありがとうございました
0311デフォルトの名無しさんNGNG
>>305
そう言う台詞はC言語まともに使いこなせるようになってからほざくもんだ。

お前とそのクソ本、どっちがCの知識が多いかと言えば後者だからな。
クソながらお前より賢い先生だ。無礼は許さん。
0312デフォルトの名無しさんNGNG
>>311
よくわからんが、嘘を堂々と書くやつは知識の多寡に関わらず賢くないと思うけど。
しかもC FAQにさえのってる有名な事例だ。それすらも知らんで知識多いの?

無礼かどうかはしらんが、嘘つきと無礼なやつだったらおれは無礼なやつを取るけどな。
0313デフォルトの名無しさんNGNG
いつもmainの定義ではつまんない議論になるな。
どーでもいいやん。
scanfの腐った仕様とかのほうがよっぽど問題だ。
0314デフォルトの名無しさんNGNG
>>313
どうでもいいといえばどうでもいいんだけども、
クズ本で勉強してきたヤシがいっぱしのプログラマでございなんて
顔されるのがたまらんのだよ。無論そいつは被害者なんだけど。

クズ本のせいで何人ヘボプログラマが生産されてることか。
こっちと関係ないところでひっそりと生きていてくれればいいんだけど、
そうもいかんしな。おい、K、おまえだよおまえ(w

だからクズ本はクズ本と言うようにしてるんだわ、おれ。
荒れる原因になりかねないからちょくちょくは言わんけどさ。

mainの定義くらいだったらかわいいもんだけどさ、
裏返すとそれすらもちゃんと知らないヤシが書いた本なんて推して知るべしだろ。
おい、おまえが適当に書き飛ばしてくれた本の尻拭いをなんでおれが、
と何度思ったことか。特にM田、貴様だ。
つかM田は書き飛ばしたわけじゃないらしいのが深刻なんだが(w

そういうわけで私怨が多分に入ってるよ、おれは。
0315デフォルトの名無しさんNGNG
あーあ。
0316M 田NGNG
俺かよ!!
0317デフォルトの名無しさんNGNG
>>316
貴様だ。
0318デフォルトの名無しさんNGNG
本のせいにするなヴォケェ
0319デフォルトの名無しさんNGNG
なんでみんなよってたかってリエントラントなコードにしろって
そんなにスレッド作りたいのか? あ?
0320デフォルトの名無しさんNGNG
>>314
誰もそんなこと言ってねぇよ。
大して勉強もしてねぇくせにステレオタイプで

この本クソなんですけど〜?

とかほざく厨房に死んでもらいたいだけだ。
0321デフォルトの名無しさんNGNG
配列ってどうやって宣言するんですかぁ?
0322デフォルトの名無しさんNGNG
配列ッ!
0323デフォルトの名無しさんNGNG
地球圏の重力に引かれた愚民どもよ。
私はここで高らかに宣言する。

我が、ジオン公国は配列を使用することを!

ジークジオン!
0324デフォルトの名無しさんNGNG
脱ダムってどうやって宣言するんですかぁ?
0325デフォルトの名無しさんNGNG
この脱ダムが押されている!?さすがだな、シャア!

くっくっく、まだまだ私には勝てんよ、アムロ。
0326API学くんNGNG
質問です。
関数の引数の中に「0L」と言う表現があるのですがどういう意味でしょうか?
どうも零のことらしいですが、わざわざLを付ける意味がわかりません。
VC++の例文に載っていたのですが、これがC言語のものか、C++のものか、VC++固有
の表現なのかもわかりません。
よろしくお願いします。
0327デフォルトの名無しさんNGNG
>>326
long
0328デフォルトの名無しさんNGNG
0L ←ヨコカラミルト、キョンシー
0329API学くんNGNG
>>327
どうもありがとうございます。
longを明示したわけですね。
あと「0L」はC言語のものか、C++のものか、VC++固有の表現なのか教えて頂けないでしょうか。
0330 NGNG
C/C++の仕様です
0331API学くんNGNG
>>330
わかりました。どうもありがとうございます。
0332デフォルトの名無しさんNGNG
API教えて君

にハンドル変えたら?
0333デフォルトの名無しさんNGNG
ネット(and人間)をマニュアルがわりに使うやつ氏んでほしい
0334デフォルトの名無しさんNGNG
>>333
http://msdn.microsoft.com/library/をマニュアルとして使ってますが、何か?
0335デフォルトの名無しさんNGNG
0L ←OL萌え
0336デフォルトの名無しさんNGNG
>>333
ネットはいいだろう。リファレンスやTIPSとしてなら。
基礎知らないと全く役に立たないけど。
基本は本で体系的に学ぶのがいいと思うけどね。
0337333NGNG
ネットはいいね。
「人間を検索エンジンの変わりに使ってる奴」に訂正。
0338デフォルトの名無しさんNGNG
>>337
ははっ 「変わり」 だってさ。ダサー
一生の恥だなおめー
0339デフォルトの名無しさんNGNG
>>338
無粋だな。
0340デフォルトの名無しさんNGNG
また蒸し返しのようにmain()の話ですみません。
int main(int argc, [以下略]と書いても、 void main(void)と
書いてもwarningが出ない、ってのはなぜですか? main()のプロトタイプは
どこにあるのでしょうか?
0341デフォルトの名無しさんNGNG
>>340
なにがしたいんだ?
0342デフォルトの名無しさんNGNG
>>340
ない。
0343デフォルトの名無しさんNGNG
>>340
mainのプロトタイプ?
自分でかかなければあるわけねーだろ。
0344デフォルトの名無しさんNGNG
>>340
mainは魔法の名前なんだよ。
0345デフォルトの名無しさんNGNG
>>340
Cはターゲットと開発機のOSやCPUなどが全く違う状態で開発できるようになってます。
つまりmainの返り値や引数は、ターゲットの環境に依存するわけです。
ですからmainは自由なI/Fで記述できるようになっています。
0346デフォルトの名無しさんNGNG
>>345
勉強になった。
0347デフォルトの名無しさんNGNG
>>340
> warningが出ない、ってのはなぜですか?
そんなもん、コンパイラによるだろ。
0348デフォルトの名無しさんNGNG
test.c
void main() { }

#2cc test.c
ゴルア(`Д´) test.c(1) > void main() <小一時間問い詰めたい
0349デフォルトの名無しさんNGNG
そのコンパイラ欲しい>>348
0350デフォルトの名無しさんNGNG
>>349
segmentあぼーん。

メッセージで信用丸つぶれ。しかも、coreの代わりにエロファイルが。
0351デフォルトの名無しさんNGNG
Pro*Cのコンパイル方法教えてください。
とりあえず、ためしにやってみました。

proc test.pc
cc -c test.c
cc -o test test.o

Oracleのライブラリをリンクしたいんですけどどうしたらいいでしょうか?
0352デフォルトの名無しさんNGNG
>>351
リンク時に加えればいいんじゃネーノ?
0353デフォルトの名無しさんNGNG
>>351
スレ違いだし、なんでヘルプを読まないのかな?(怒)
0354デフォルトの名無しさんNGNG
>>353
ヘルプはないっす
0355デフォルトの名無しさんNGNG
>350
だが、エロファイルを袖の下にして信用回復。

>351
Oracleのmakefileを改造。
でもライブラリを特定してリンクしたいとかだったらスマソ。
0356デフォルトの名無しさんNGNG
>>354
死ね
0357デフォルトの名無しさんNGNG
>>350
それはコンパイラでなく、OSの仕業。
0358デフォルトの名無しさんNGNG
>>357
ひろゆき、割とUNIX互換OS manax 発表。
0359デフォルトの名無しさんNGNG
>>355
そうなんです。makefileがわけわかんないんで。
ひとつひとつやってみたいんですけど。
0360340NGNG
>>345 うーん。ご指摘の点ですけど、
ターゲットが違うんなら、仮におなじホストでおなじコンパイラ使っててもインクルードする
ファイル(の置き場)も変わるものなんではないかと思いますけど...
(つまり、ターゲットがいろいろあるって事実は、mainのprototypeが存在しないこと...
「自由なI/Fで記述できる」ってのの理由になってるんでしょうか?)

で、343さんや344さんの言うように、mainのプロトタイプは、ふつうは存在しないってのは
正しいんでしょうか?なんかの規格上、存在しないってきまってるものなんですか?

>>341 正確な知識が得たいんです。

知るかヴォケ、って言われそう。
0361デフォルトの名無しさんNGNG
>>360
規格で決まってるらしい。

C言語のJIS規格X3010-1993には、
「プログラム開始処理において呼び出される関数の名前は、mainとする。
処理系は、この関数に対して関数原型を宣言しない。」
との記述がある。
0362360NGNG
>>361
ありがとうございます!

0363デフォルトの名無しさんNGNG
1から10までの数字をランダムに毎回実行する
ごとに順番を入れ替えるプログラムを
作ってください。
0364デフォルトの名無しさんNGNG
>>363
作りました。
0365デフォルトの名無しさんNGNG
>>363
そういうのは、現在時刻、またはプロセス番号をキーに
乱数を作ればいいんだけど、環境に依存するよ。
誰かが作っても君の環境で動作するとは限らない。
0366sageNGNG
>>363
rand()
0367デフォルトの名無しさんNGNG
>>366
実行開始ごとに乱数系列が初期化されるから、単にrand()を使っただけだと
毎回同じ結果になってしまうよ。

それを避けるためには、>>365の言うように何らかの外的要因による初期化が
必要で、その手段は実行環境に依存する。
0368363NGNG
>>365,367
動作しなくても、参考になるので
誰か作ってください。
0369デフォルトの名無しさんNGNG
宿題かのう?
0370デフォルトの名無しさんNGNG
>>368
千円で作ってあげるよ。
0371363NGNG
>>369
そんなとこです。
0372デフォルトの名無しさんNGNG
そんなとこですか。
0373デフォルトの名無しさんNGNG
あたま痒いとこありますか?
0374デフォルトの名無しさんNGNG
>>373
あるけど教えません。
0375デフォルトの名無しさんNGNG
座標60.0681、48.2218のあたりが痒いです
0376デフォルトの名無しさんNGNG
system("ls %s"〜

のようにsystem関数で変数をいれたいのですが、
どのようにすればよいのでしょうか?
0377デフォルトの名無しさんNGNG
>>376
PG向いてないと思われます
0378376NGNG
PGに向いて無くても構いません。
0379デフォルトの名無しさんNGNG
>>376
char tmp[256];
sprintf(tmp, "ls %s",殻);
system(tmp);
0380デフォルトの名無しさんNGNG
こんな感じかな? >>363

int  _Rand( int n );  // 0〜nを返す

int  main( void )
{
  int  b,i,n,a[10]={1,2,3,4,5,6,7,8,9,10};
  
  for(n=0;n<9;n++) {
    i=_Rand(9-n);
    b=a[i];
    a[i]=a[9-n];
    a[9-n]=b;
  }
  
  return 0;
}
0381363NGNG
>>380
どうも、ありがとうございました。
0382デフォルトの名無しさんNGNG
関数の戻り値でPOINT型やint型などがあるのですが,
これを関数名でわかるようにしたほうがいいのでしょうか?

point_kakezan();
0383Rina ◆tI333vNE NGNG
場合によりけり。
同じ機能で型違いっていうのなら関数名に型情報を
持たせたほうがいい。
fabsとabsなんて良い例なんじゃないかな?
0384デフォルトの名無しさんNGNG
BOOL Hantei( void )
{
 int i;

 for(i=0;i<Cnt;i++) {
   if( Data[i] >= 1 ) return TRUE;
 }
  return FALSE;
}

これぐらいでも関数にする時ってありますか?
今関数100個くらいあるんですが
ひとつのファイルに20個くらいも書いてあるのはありですか?
0385デフォルトの名無しさんNGNG
>>384
いいんじゃねぇの?
0386 NGNG
>>384
それぐらいでも関数にする時ありますよ
ファイルは機能別に分割した方がいいでしょう
0387デフォルトの名無しさんNGNG
マクロにしろよ。
0388デフォルトの名無しさんNGNG
>>387
思想が危険。inlineでいいじゃん。
0389 NGNG
>>387
いい加減なこと言うな
0390デフォルトの名無しさんNGNG
マクロにしたらソースが真っ黒
0391 NGNG
ウワッ...
0392デフォルトの名無しさんNGNG
C言語でスロットのゲームを作りたいと思っています。
可能でしょうか?また、そういったものを作られた経験のある方はいらっしゃいますか?
0393デフォルトの名無しさんNGNG
>>392
可能
0394 NGNG
>>392
せめて環境を書きましょう
0395デフォルトの名無しさんNGNG
>>394
ヴィジュアルC++のコンソールアプリです。
フラグの成立に関する関数って存在しますか?
0396デフォルトの名無しさんNGNG
>>395
?
0397デフォルトの名無しさんNGNG
>>395
フラグの成立?
何言ってっかわかんないけどそんな関数ありません
0398デフォルトの名無しさんNGNG
>>392
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main(){
time_t tt;srand(time(&tt));
while(getchar()!=EOF)
printf("%d",rand()%10);
return 0;}
0399395NGNG
例えば、

   {12345678901234567890}

上のような個々の数字(または文字)をランダムで1つ選ぶ、みたいなモノです。
スロットはレバーをたたいた時こんな風にフラグ(ベルやスイカ、チェリー等の役)をランダムで決めてるので。

0400デフォルトの名無しさんNGNG
bool IsFlagOn(bool Flg){
  return Flg;
}
0401395NGNG
>>398
ランダムで決めるヤツですよね?
すいませんがほんとに簡単でいいんで解説お願いできますか?
0402デフォルトの名無しさんNGNG
void kan2(char *);

void kan( void )
{
 char box[20][20];

 kan2(&box[0][0]);
}

void kan2(char *box)
{
 for(int i=0;i<10;i++)
  box[0+i]=i;
}

を,

void kan2(char *box)
{
 for(int i=0;i<10;i++)
  box[0][i]=i;
}

という風に使いたいのですが,kan2のプロトタイプ宣言の仕方とchar *boxをどのようにすればいいのかわかりません。
教えてください。
0403デフォルトの名無しさんNGNG
>>395
time(NULL);現在時刻を返すかもしれない
srand(time(NULL));ランダム系列を現在時刻で初期化
getchar();一文字読み込む、もうなければEOF
rand();擬似乱数を返す、系列はsrandで初期化済み
rand()%10;0から9に限定
printf("%d",rand%10);それを表示
0404デフォルトの名無しさんNGNG
>402
void kan2( char **box );
あと、普通は
kan2( box );
と呼び出すと思うんだけど
0405デフォルトの名無しさんNGNG
>>402
void kan2(char box[20][20]);とか
void kan2(char box[][20]);とか
void kan2(char (*box)[20]);

kan2(box);
0406デフォルトの名無しさんNGNG
プロトタイプ宣言にboxとかいれてもいいんでしょうか?
0407デフォルトの名無しさんNGNG
>>406
(゚∀゚)余裕でオッケー
0408デフォルトの名無しさんNGNG
>406
いいよ。てか、普通は入れる。引数の意味が分かりやすいように
0409デフォルトの名無しさんNGNG
Cはじめて1年半知らんかった
全部void kan( int, int ,char );
とかにしていた・・・
鬱だ,がんばろう
0410デフォルトの名無しさんNGNG
>>409
1年半じゃしかたないね。 オレは歴10年でやっとモノにしつつある感じ。
0411デフォルトの名無しさんNGNG
>>409
がんがって!
0412デフォルトの名無しさんNGNG
>>409
逝っちゃって!
0413デフォルトの名無しさんNGNG
おれとあんまし変わらないけど(さりげなくイヤミ) >1年半
0414デフォルトの名無しさんNGNG
学生で古い本だけをみてやってるとそうなるだろうね。
つーか、C/C++ってプロトタイプ宣言が必要だから嫌い。
0415デフォルトの名無しさんNGNG
プロトタイプ宣言が無いと面倒くさくていや。
タイプミスがバグに直結するんだよ? それでもいいの?

タイプミスをコンパイラがはじいてくれる・・・こんなにうれしいことはない
0416デフォルトの名無しさんNGNG
if(0){
  (デバッグ処理);
}

と書くと、この部分はコンパイルされませんか?
それとも、
#if 0 〜 #endif でくくらないと駄目ですか?
0417デフォルトの名無しさんNGNG
>>416
> と書くと、この部分はコンパイルされませんか?
処理系と最適化オプションによる。ちなみにgccの場合は無視される。

> #if 0 〜 #endif でくくらないと駄目ですか?
この場合は処理系、最適化オプションに関わらずに必ず無視される。
0418デフォルトの名無しさんNGNG
typedef struct{
 char *lpBox;
 int nu;
}Box;

これで,Box.lpBoxに5つの配列を動的に確保し,そのあとmemsetでBoxを初期化(0でメモリの塗りつぶし)したら,どうなりますか?
それとBox.lpBoxを開放したあとに,memsetした場合はどうなりますか?
0419モヒモヒNGNG
自販機のプログラムを作れっていわれたらどんな感じにします?
0420デフォルトの名無しさんNGNG
>>416
無視されるがコンパイラは検索するので
SJISで「/* ここで「表示」します */」なんでいれてもエラーは出る。
#ifdefでも。
gccだとね。
0421デフォルトの名無しさんNGNG
>>418
ポインタを初期化したら解放できないだろ。
解放した後にそのポインタに触れるのはご法度。
0422デフォルトの名無しさんNGNG
>>419
昔、どっかでプログラムの学習ででてきたやつだな。
「最初にお金を入れて、次にボタンを押して」
とかいう。
宿題は宿題スレにいきな。
0423デフォルトの名無しさんNGNG
typedef struct{
 char *lpBox;
 int nu;
}Box;

これで,Box.lpBoxに5つの配列を動的に確保し,
Box.lpBoxを開放したあとに,memsetした場合は安全ですよね?
このあと,またlpBoxに動的に配列を確保したりしてもいいですよね?
0424デフォルトの名無しさんNGNG
いいよ、好きにしな。
0425デフォルトの名無しさんNGNG
本当のところは?
0426デフォルトの名無しさんNGNG
2chでの回答をお前は信用するのか?
無意味だろ。本なり信用できるネットで調べてこいよ。
で、俺の信用できない意見でいいなら
「かまわん」
0427デフォルトの名無しさんNGNG
俺の信用できない意見はこうだ。
「配列を5つも確保してどうする」
0428デフォルトの名無しさんNGNG
最近何処かで見たソースで、処理用の領域を関数内部でmallocで確保して、
returnの直前でfreeして、そのfreeした領域内の値をreturnしているものが
あったんですが、これって許されることなんですか?
返す値を別の変数に保存してからfreeして、保存した値を返すようにすべきじゃ
ないかと思うんですが。
0429デフォルトの名無しさんNGNG
だめにきまっとる。
それに
「何処かで見たソース」
でなくて
「自分が作ってしまったソース」
だろ。正直に書くように。
0430デフォルトの名無しさんNGNG
>>428
freeした後に、その領域にアクセスしちゃいけないよ。
0431 NGNG
ヘッダファイルに出来る事はなに?
0432デフォルトの名無しさんNGNG
>>431
C言語でできることなら何でも
0433デフォルトの名無しさんNGNG
>>432
と、いうことは、こんなプログラムを書いていいれすか?

main.c の中身

#include "input.c"
#include "calc.c"
#include "print.c"
0434432 NGNG
それはあなたの自由です
0435デフォルトの名無しさんNGNG
>>433
文法的には可能。
ただそれをやると君のコーディングセンスが疑われる諸刃の剣
素人にはお勧めできない。
0436デフォルトの名無しさんNGNG
ヘッダファイルをプログラムの最後に置いた場合、
「テイルファイル」に名称変更してもいいれすか?
0437デフォルトの名無しさんNGNG
>>336
駄目です。
「フッタファイル」ならば許可します。
0438デフォルトの名無しさんNGNG
>>437
ポインタ参照ミス。
0439437NGNG
えーん、ポインタって難しいよ。

ところでチョット疑問>>0 ってどうなるんだろう?

0440デフォルトの名無しさんNGNG


  ど う も な ら な か っ た ね
0441デフォルトの名無しさんNGNG
質問。
N88BASICみたいに
絵を書くことは出来ますか?
0442デフォルトの名無しさんNGNG
>>441
できない。
0443デフォルトの名無しさんNGNG
>>442
なーんだ。できないのか。
CってN88BASICより劣っているんだね
なんてレベルに低い言語だ
0444デフォルトの名無しさんNGNG
>>443
ハイハイソーソー
0445デフォルトの名無しさんNGNG
>423
>これで,Box.lpBoxに5つの配列を動的に確保し,
>Box.lpBoxを開放したあとに,memsetした場合は安全ですよね?

ネタなんだかわからんがマジレスします。全然安全じゃありません。
構造体で考えるから難しくなるんでしょう。何でもプリミティブな形で
考えればいい。要はこういうことでしょ。

char *cp;
cp = malloc(5);
free(cp);
memset(cp, 5, 0);

freeしたあとのcpには何かしら有効なポインタを指す前にアクセスしてはいけない。

0446428NGNG
>>429
自分でそんなコード書いたらとてもこんなとこで晒せませんて。

記憶を辿ってハケーンしますた。
ttp://www5.airnet.ne.jp/tomy/cpro/sslib9.htm

ここの
double lagra(double xx[], double yy[], int n, double xi)
double splint(double xx[], double yy[], int n, double xi)
の中でこんな記述が。
if(*p++ == xi)
{
  free((char *)x);
  free((char *)y);
  return *(y + i);
}

freeしてすぐだからって駄目ですよね?こんなの。
啓学出版の「C言語による科学技術計算サブルーチンライブラリ」
(黒瀬能聿・松島勇雄・松尾俊彦 共著)という本をベースにしてる
そうですが、この本誰か知ってますか?
信頼に足る本なんでしょうか?
0447デフォルトの名無しさんNGNG
Pro*Cのmakefileできましたよー
これでさらに無敵になりました。
0448デフォルトの名無しさんNGNG
>>446
その本はしらんが、そのコードはダメだ。
そのページのやつがダメなのか本がダメなのか判断つかんが。
0449デフォルトの名無しさんNGNG
>>446
そのページのソース、なんか、途中で面倒くさくなったらしくて、
3つcallocして、どれかがNULLならfreeしないでreturnしてるね(w
まぁ、危険なところは書き直して吉。
0450デフォルトの名無しさんNGNG
大昔のUNIXではfreeした直後のポインタをreallocで復活させる
ことが許されていたそうな。くわばらくわばら。
0451デフォルトの名無しさんNGNG
>>450
復活できなかったら別の領域が確保されてreallocの戻り値で
返されるとかいう仕様?
無条件に復活できるわけじゃないでしょ?
新規にmallocせずに必ず復活できると限らんものをreallocしたい
心境が分からんが。
0452デフォルトの名無しさんNGNG
右脳系プログラマですが、何か?
0453デフォルトの名無しさんNGNG
>>452
あ、俺も俺も〜。
0454デフォルトの名無しさんNGNG
>>445
NULL入れた後はOK?
0455デフォルトの名無しさんNGNG
>399
「ランダムで選ぶ→rand()を使用」って書いてあるのにアフォですか?

ちなみにスロットのドラムは一定方向に回転しているだけなのでランダムで選ぶのはどうかと。
実機で絵柄が飛ぶように見えるのは、ボタンを押した瞬間に滑らせる(=役が揃わないように高速でドラムをずらす)からだよ。

とりあえず今後はゲ製版へ逝ってくれ。
0456デフォルトの名無しさんNGNG
Objective-Cっていうのはアレかい?
Macで使われてるのかい?
0457名無しさん@カラアゲうまうまNGNG
>>454
NULLが有効なアドレスだと思ってんのか。
0458454NGNG
わかたーよ
ポインタのメンバ以外memsetするーよ
0459デフォルトの名無しさんNGNG
>NULL入れた後はOK?
>わかたーよ
>ポインタのメンバ以外memsetするーよ
たぶん全然分かっていないと思うけどこれなら可能。
typedef struct{
char *lpBox;
int nu;
}Box;


int main(void)
{
Box box;

memset(&box, 0, sizeof(Box));
printf("%p, %x\n", box.lpBox, box.nu);

return 0;
}
0460デフォルトの名無しさんNGNG
みなさんプロのかたばかりですか?
C勉強中ですが
レス見てもぜんぜん理解できません

はぁー
0461デフォルトの名無しさんNGNG
>>461
気にしなくてもよいかと。
0462デフォルトの名無しさんNGNG
>461
0463デフォルトの名無しさんNGNG
素人のしったか君の方が多いです。ご安心を。

そんなあなたも3ヵ月後には
「NULLポインタ?お前ら読み方はナルが正しいんだぞ、厨房がぁ!」
とかさらりと言えるようになります。
0464デフォルトの名無しさんNGNG
>>463
どうしても「NULL」を「ヌル」と読んでしまう漏れはぬるぬるですか?
0465デフォルトの名無しさんNGNG
>>463は、ラジオをレイディオと発音するタイプ。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=NULL&sw=0
0466デフォルトの名無しさんNGNG
>>463
warningはウォーニングとは読まないのですか?
0467デフォルトの名無しさんNGNG
>>466
読んでますが何か?
0468モヒモヒNGNG
宿題スレってどこにあんの?」
0469デフォルトの名無しさんNGNG
探し出した者だけが答えを貰えるという・・・
0470デフォルトの名無しさんNGNG
伝説の・・・
0471デフォルトの名無しさんNGNG
検索
0472デフォルトの名無しさんNGNG
あ、見つけやがった。
0473デフォルトの名無しさんNGNG
>Borland C++で自販機作ってください。
(;´Д`)
0474デフォルトの名無しさんNGNG
しかし、それはもう何百年も前の話・・・
0475デフォルトの名無しさんNGNG
質問です。
#defineで宣言するのが多くなったので、他のファイルに分けたいのですが
どうすればよいのですか?
0476デフォルトの名無しさんNGNG
>>475
defineのファイルをインクルードしなさい
0477デフォルトの名無しさんNGNG
>>476
どうやって書いたらよいのですか?
0478デフォルトの名無しさんNGNG
毛筆で
0479デフォルトの名無しさんNGNG
>>478
俺はかわいく丸文字がイイな。
0480デフォルトの名無しさんNGNG
>>478-479
真面目に答えてください。
今日中に教えてくれないとレイプします
0481デフォルトの名無しさんNGNG
まじれす
#ifndef HOGEHOGE_H
#define HOGEHOGE_H

#define xxxxxxxx
#define xxxxxxxx
  :

#endif
0482デフォルトの名無しさんNGNG
>>481ありがとうございます。
これをヘッダーファイルにして
インクルードすればよいのですね?
0483デフォルトの名無しさんNGNG
>>475
現時点でどういうファイルがあって、
どのファイルで#defineの宣言が多くなったのかを言わんと。
0484481NGNG
です
0485デフォルトの名無しさんNGNG
ところで、
#ifndef HOGEHOGE_H
#define HOGEHOGE_H
のHOGEHOGE_Hってなんれすか?
0486デフォルトの名無しさんNGNG
>>485
インクルードガード
0487481NGNG
ヘッダファイルが多重にインクルードされることのないように。
HOGEHOGE のとこは何でもいいのれす。
0488デフォルトの名無しさんNGNG
ヘッダーファイルはどこに保存すればいいのですか
0489デフォルトの名無しさんNGNG
>>488
ひまなのか?ネタなのか?
0490デフォルトの名無しさんNGNG
>>489
まじです。
お願いだから、マジレスしてください。
0491デフォルトの名無しさんNGNG
>>490
どこでもいいよ。
0492デフォルトの名無しさんNGNG
>>490
HDDに。
つか
#include <hogehoge.h>
とやってないだろうな?
#include "hogehoge.h"
カレントに置く場合はこうしませう。
0493デフォルトの名無しさんNGNG
>>491
インクルードファイルが見つかりませんって言われるのですが…
0494デフォルトの名無しさんNGNG
>>492が正解の予感
0495デフォルトの名無しさんNGNG
どういうことですか?
0496デフォルトの名無しさんNGNG
ポカーン( ゚Д゚)
0497デフォルトの名無しさんNGNG
ディレクトリ名を入れないといけないのですか?
0498デフォルトの名無しさんNGNG
それでいいよ
0499デフォルトの名無しさんNGNG
>>497
>>492は理解してる?
0500デフォルトの名無しさんNGNG
いいえ
0501デフォルトの名無しさんNGNG
     >>500
          ,;⌒⌒i.
  ノノノノ⌒ヽ (   ;;;;;)   ______
 (゚∈゚ )  ミ)     ,,:;;;). .|         .|
/⌒\/(   ) ヽ| |/ |;,ノ  |   樹海    |
( ミ   ∨∨  | /  .,i  |______|
 ノ  /     | | ,,i; ,, . ,;⌒‖
( \/ヽ ,,,丶, | |,,,;.    ;i,  .‖ヽ
 \ ) ) ..   ,,   ´ヽ (,,  ‖丿.,,,
 ///   ,,   ,,  .. ´ヽ  ‖,,, ..,
`ヾ ヽミ ,,  .、 ヽ .. ヽ丶,.ヽ ‖、,,
0502デフォルトの名無しさんNGNG
あ、できた。
0503デフォルトの名無しさんNGNG
そんな事より1000よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昨日、近所のム板行ったんです。ム板。
そしたらなんかCを理解してる人がいないで語れないんです。
で、よく見たらなんかC言語を習得するには20年かかると書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、C如きで普段来てないム板に来てんじゃねーよ、ボケが。
Cだよ、C。
なんか親子連れとかもいるし。一家4人でム板か。おめでてーな。
よーしパパ勉強しちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、VCからCを勉強と。
ム板ってのはな、もっと殺伐としてるべきなんだよ。
モニターの向こうの奴奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと語れたかと思ったら、隣の奴が、Cは関数の集まり、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、Cは関数の集まりなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、Cは関数の集まり、だ。
お前は本当にCは関数の集まりを言いたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、Cは関数の集まりって言いたいだけちゃうんかと。
ム板通の俺から言わせてもらえば今、ム板通の間での最新流行はやっぱり、
繰り返し文、これだね。
無限繰り返し文while。これが通の頼み方。
繰り返し文ってのは同じことをさせる。そん代わり楽。これ。
で、それに無限while。これ最強。
しかしこれを頼むと次から日本政府にマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、BASICでもやってなさいってこった。
0504デフォルトの名無しさんNGNG
>>500
とりあえず、コンパイルする.cファイルと同じディレクトリに自作のヘッダを
おいてください。includeは<>じゃなくて""で囲ってください
0505ほべNGNG
>VCからCを勉強と。
>モニターの向こうの奴奴
0506デフォルトの名無しさんNGNG
ちょっとwebさまよってて見かけたんだけど
 double a = 74.58;
 double b = 0.33;
 double c = a/b;
 int d = (int)c;

とすると c=226.0 なのに d=225 になるらしいんです。
実際やってみたら確かにそうなる。 floor(c)でも同じ。
まじ怖いと思った。どうやって回避すればいいんですか?
0507デフォルトの名無しさんNGNG
cが厳密には 225.999・・・ になっていて、整数にするとき
端数が切り捨てられただけでは
0508デフォルトの名無しさんNGNG
>>506
死者五入しんさい。
0509デフォルトの名無しさんNGNG
桁上げしてintで計算しる!
0510506NGNG
>>507 >>508
微小量を cに足してやった上でint にするというソリューションが、載ってい
た記憶があるんですが、それはそれで、真の解ではなくなる可能性もあるんですよね...

>>508
数値計算のようなアプリケーションでは、ちと辛いような気も...
0511デフォルトの名無しさんNGNG
>>510
BCDとかBIGNUMを使う、分数は分数のまま持って歩く。
0512デフォルトの名無しさんNGNG
無知は怖いねぇ
0513デフォルトの名無しさんNGNG
「int x, *p;」とした時に「p = &x;」は出来るのですが、「&x = p;」が出来ません。
(エラーの内容は「左のオペランドが左辺値になっていない」です)
何故エラーが出るのかどなたかご教授していただけないでしょうか。お願いします。

int main(void) /* sample.c */
{
 int x, *p;

 &x = p;
 p = &x; /* error */

 return 0;
}
0514デフォルトの名無しさんNGNG
>>513
xのアドレスは変えれんよ
0515513NGNG
すみません、間違ってソース書いてました。修正します
p = &x;
&x = p; /* error */

>>514さん
どうもです。でも、代入すら許されないのでしょうか?
0516513NGNG
アドレスは変えられないんでした・・・。逝ってきます
>>514さん、有難うございました。
0517デフォルトの名無しさんNGNG
質問です。
どうやったらチンカスを出力できますか。
printfでやったけどできませんでした。
0518 NGNG
KISS(Keep it simple, stupid)の原則ってどういう意味なんですか?
「単純にしろ、間抜け」?
0519デフォルトの名無しさんNGNG
>>517
puts

>>518
スレ違い
0520デフォルトの名無しさんNGNG
>517
printf("チンカス\n");
0521デフォルトの名無しさんNGNG
http://www.kumei.ne.jp/c_lang/intro/no_26.htm
の下のほうの「MS-DOSのエスケープ・シーケンス」のところで、
printf("\x1b[4;31m");
とあるところなのですが、色が変わらず、┘のような
変な文字列が表示されるだけでうまく動きません。

色の変更をしたいときは、Cではどのようにしたらいいですか。

OSは WinXP Home
コンパイラは Borland C++ 5.5.1 for Win32 です。
0522デフォルトの名無しさんNGNG
>>521
>(*注)同じMS-DOSでもたとえば98シリーズと FMシリーズではカラーコードが違っています。
>他にも微妙に違うところがあるかもしれません。
>お使いの機種で本章のプログラムがうまく動作しない場合は、無視して下さい。
>本章以降のプログラムについても同様です。
0523デフォルトの名無しさんNGNG
超FAQだが、NT系Windowsではコンソールで
ANSIエスケープシーケンスがつかえねーんだってば。
0524デフォルトの名無しさんNGNG
>>522-523
見落としてました。

代替法を伝授していただきたいのですが。

# sage 進行スレでageてゴメソ
0525デフォルトの名無しさんNGNG
>>524
質問くらいageてもいいだろ。

/* 折れはかちゅ〜しゃだしね… */
0526デフォルトの名無しさんNGNG
>>524
sage進行じゃねーぞ。sageる人がこの板に多いだけ。
質問はなるべくageてね・・・
0527デフォルトの名無しさんNGNG
スレ違いかもしれませんが教えてください
最近C++を勉強していますが
Cに慣れてるせいか所々詰まってしまう部分があります
特に「参照」がソース中に出てくるとつっかえてしまいます
一応機能や文法は理解しているのですが本の中だけで理解しているだけです
実用的なソースはまだ見ていないのでわからないのですが
基本的にポインタで代用可能という判断を下したのですがどうなんでしょう?
参照には出来てポインタでは出来ない事とかあるのでしょうか?
個人的に参照はあまり使いたくないと思っています。
0528デフォルトの名無しさんNGNG
>>527
nullは取れないのでエラーをどう表そうか悩む。

本来、ポインタのよる参照渡しはリーガルな方法ではないし問題も多い。
だから参照というものが導入された。
0529デフォルトの名無しさんNGNG
>524
確実なのはSetConsoleTextAttributeみたいなAPIを叩く、くらいしか、、

>527
>参照には出来てポインタでは出来ない事とかあるのでしょうか?
T& operator + ( const T &lhs , const T & rhs);
T ret = T(1) + T(2) + T(4);

>528
引数として参照があるのは、「エラー状態はいらねー」という意思表明ナリ
返値としてなら、例外投げれ
0530デフォルトの名無しさんNGNG
ソースが長くなったので他のファイルに分けようと考えているのいるのですが
どうすれば良いのでしょうか。
0531デフォルトの名無しさんNGNG
>>529
int &getref()
{
int &a = some_valiable;

return a;
}


getref() = 32;
0532デフォルトの名無しさんNGNG
>>530
関数単位で分けて書く。
一つの関数を複数のファイルに分けて書くことはできないはず。
0533デフォルトの名無しさんNGNG
>>532
これを別のファイルに保存して、それを読み込む方法を聞いているのですが…。
0534デフォルトの名無しさんNGNG
>>533
は?
コンパイラの使い方を聞いているの?
そんなのコンパイラの説明書をみればいいじゃない。
0535534NGNG
#includeは使うなよ。
0536デフォルトの名無しさんNGNG
>>535
モジュールかですかいな。
0537デフォルトの名無しさんNGNG
>>533
includeしろ!
0538デフォルトの名無しさんNGNG
>>536
535は単に*.cを#includeするなと言ってんじゃない?
0539デフォルトの名無しさんNGNG
分割コンパイルの方法を聞いているのですが...
0540デフォルトの名無しさんNGNG
>>539
じゃあ使っているコンパイラを教えてよ。
0541デフォルトの名無しさんNGNG
>>539
コンパイラ。
0542デフォルトの名無しさんNGNG
>>539
もっと具体的に言え
分割コンパイルの方法を1から説明しろと言うとるのか?
0543デフォルトの名無しさんNGNG
>>539
単に別々にコンパイルするだけです。
実行形式にするときにはコンパイルしてできた
オブジェクトファイルを必要なだけリンクします。
0544デフォルトの名無しさんNGNG
プリプロセッサ、コンパイラ、リンカーなどを総称してC処理系と言うんですか?
0545デフォルトの名無しさんNGNG
>>544
いいんじゃない?
0546デフォルトの名無しさんNGNG
>>527
C++相談室スレで質問して貰った方がいいのかもしれないけど…

参照は基本的にポインタで代用可能という判断で正しいと思います。
必要を感じなければ積極的に使わなくても良いのでは。

私が参照を使う場面というと、ネストしたクラスの奥深くにアクセスするときに
参照で短い別名を付けるというpascalのwith文のような使い方とか、
関数内部で変更しないクラス引数をポインタ渡しにすると呼び出し側に
実体の変数が必要だけど、const参照で渡せばコンストラクタ等で生成した
即値を渡すことも可能とか、そんな用途ぐらいですか。
0547デフォルトの名無しさんNGNG
http://black.sakura.ne.jp/~third/c1.html

ここの下のコンパイラの説明のところに、実行ファイルは作れませんが・・・とあるんですが、そんなコンパイラがあるんでしょうか(^_^;)
コンパイルするだけしてリンクはしないとか?
0548デフォルトの名無しさんNGNG
>>547
VMがあるかもねぇ。
0549デフォルトの名無しさんNGNG
>>547
gccやボーランドはだめなの?
0550デフォルトの名無しさんNGNG
ムムム・・・
頑張って参照に慣れるしかないようですな・・・
どうも代入文の左辺に&があったり
関数に値を代入したりという部分でわかってはいても理解に時間がかかる・・・
まあこれは慣れしかないですね
0551デフォルトの名無しさんNGNG
>>547
リンクはリンカがするものです。
ただ、オプション指定でリンカを起動できる
コンパイラが多いだけです。
0552デフォルトの名無しさんNGNG
>>547
そのサイトやべーぞ。
http://black.sakura.ne.jp/~third/c55.html

呆れたYO!
0553デフォルトの名無しさんNGNG
英語の情報になれたいのですが
英語で書いてあるCの勉強ぺージってありますか?
0554デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>

int main() {
char *po;
if ((po = (char *)malloc(sizeof(char) * 128)) == NULL) {
fprintf(stderr , "メモリが足りません");
exit(1);
}
po = "Kitty on your lap"; /* なんのためにmallocしたんだよ */

printf(po); /* %s使え */
free(po); /* mallocした覚えのないものをfreeするな */
return 0;
}
0555デフォルトの名無しさんNGNG
>>553
そりゃもう無数に。
0556デフォルトの名無しさんNGNG
>>553
勉強ページとは言えないかもしれないが、>>1のC FAQとか
0557デフォルトの名無しさんNGNG
> free(po); /* mallocした覚えのないものをfreeするな */
mallocはしていると思うが?
0558デフォルトの名無しさんNGNG
>>557
その時点でのpoの値は"Kitty on your lap"という文字列リテラルの先頭アドレスで上書きされています。
0559デフォルトの名無しさんNGNG
>>547
リンクページの"C machine"というサイトにあるのがここで触れられている
学習用コンパイラのようだけど、Windows用のexeを吐くんじゃなくて
コンパイラから実行環境までをアプリ内部で持ってるようですな。
0560デフォルトの名無しさんNGNG
文字列のコピーはstrcpyを使えとあれほど(略
0561デフォルトの名無しさんNGNG
>>560
strncpyの方がより安全かと
0562デフォルトの名無しさんNGNG
>>561
なにが、どういうふうに安全なのか教えていただけますか?
0563デフォルトの名無しさんNGNG
strncpyはけつに0をつけない事があります。
先頭を0にして、strncatがおすすめ。
0564561NGNG
>>562
一般的には溢れないn付きの方が安全かと。
>>554の(>>552のリンク先のですよね)みたいにコピー元が固定の文字列で
明らかに溢れない場合はstrcpyでノープロブレムです、はい。
0565デフォルトの名無しさんNGNG
>>563
strncatってそんな仕様だったんだ。
putsは改行するのにfputsは改行しなかったりと、なんか統一性がないね。
0566デフォルトの名無しさんNGNG
>>561-565
ネタ
0567565NGNG
>>566
俺もかよ!
0568デフォルトの名無しさんNGNG
>>567
何マジにな(略
0569563NGNG
strncatは、n+1(終端の\0のぶんおおい)バイトの領域が
必要になることがあるから気をつけてね。
0570デフォルトの名無しさんNGNG
>>569
当たり前のことを語りまくるな。
こいつ。strcpyは領域いっぱいに使ったんだろうな。
0571569NGNG
>>570
プ
0572デフォルトの名無しさんNGNG
今日はこのスレの伸びがいいなぁ。いいことなのかわからんが
0573デフォルトの名無しさんNGNG
strncpyで昔から妄想してるというかちゃんと調べてないんでわかんないことがあって、
いい機会だから書いてみる。

strncpyのあの仕様ってCOBOLとかのレコードをCで扱うためにある(あった)んじゃないかって
だいぶ前から妄想してたりする。

以前全銀協手順のプログラムをCで書いたとき、文字列のフィールドは、
文字列の末尾からフィールドの最後までを0x20で埋めろという仕様だった。

もちろんstrncpyは0x20じゃなくて0x0で埋めるんだけど。

で、ひょっとしてstrncpyが生まれた時代のCOBOLの実装に
文字列フィールドの末尾を0x0で埋めるやつがあったんじゃないかななんて。

…やっぱ妄想ですね。逝ってきます。
0574562NGNG
ネタにネタを振ってみたらこんなことに...
初心者が混乱するのでもう止めてください。
0575デフォルトの名無しさんNGNG
strncpyってmemcpyといっしょだよね。違うの?
0576デフォルトの名無しさんNGNG
>>575
ネタだと思うけど一応・・・・
strncpyは0が来たらそこでコピー終了。memcpyは指定されたバイト数分無条件でコピー。
0577デフォルトの名無しさんNGNG
>>576
何ー!!
そんな仕様だったのかー!!
0578デフォルトの名無しさんNGNG
>576
ネタだよね?
strncpy()は最初の'\0'が見つかった後、nバイトに達するまで'\0'で埋める。
0579デフォルトの名無しさんNGNG
>578
ネタだよね?
strncpy()は最初の'\0'が見つかった後、nバイトに達するまで0x20で埋める。
0580デフォルトの名無しさんNGNG
>>578
そうだったっけ?
てっきり'\0'はひとつだけコピーするのかと・・・
0581デフォルトの名無しさんNGNG
やはり、スレがのびればいいってもんじゃないな。
厨はまとめて逝ってくれ。
0582デフォルトの名無しさんNGNG
>>1-581
逝けってさ。
05831-581NGNG
カチャ
  ;y=ー( ゚д゚)・∵. ターン
  \/| y |)
0584デフォルトの名無しさんNGNG
ttp://www.bohyoh.com/CandCPP/C/Library/strncpy.html
0585デフォルトの名無しさんNGNG
>>1-583
じゃ、逝くか。
0586デフォルトの名無しさんNGNG
>579
下のプログラムを試せばわかるよ

#include <stdio.h>
#include <limits.h>

int main(void) {
  char buf[] = "0123456789";
  strncpy(buf, "", LONG_MAX);

  return 0;
}
0587デフォルトの名無しさんNGNG
>>586
ねぇ"" = '\0'じゃないの?
0588デフォルトの名無しさんNGNG
>587
デバッガで試してみなよ。
0589デフォルトの名無しさんNGNG
""[0]=='\0'
0590デフォルトの名無しさんNGNG
0[""] == '\0'
0591デフォルトの名無しさんNGNG
0 == 0[""]
0592デフォルトの名無しさんNGNG
>>589
覚えたてだから「知ってるぞ」ってアピールしてんの?
みんな知ってるってw
0593デフォルトの名無しさんNGNG
?何を覚えたて?
0594デフォルトの名無しさんNGNG
>>592
何か覚えたてなの?
0595デフォルトの名無しさんNGNG
>592
調子に乗ったあげく、

NULL[NULL] == NULL

ってされなかった分だけマシだったと思って許してあげれば?
0596デフォルトの名無しさんNGNG
?許す?
0597モヒモヒNGNG
なんでこれじゃ駄目なん
int main(void)
{
char option;

cout << "S) Select An Item" << endl;
cout << "D) Deposit Money" << endl;
cout << "C) Cancel" << endl;

cin >> option;

if (option == "S")
cout << "1" << endl;

else if (option == "D")
cout << "2" << endl;

else if (option == "C")
cout << "cancel" << endl;

else
cout << "Please select S or D or C" << endl;

int i;
cin >> i;
return 0;
}
0598初心者 ◆ZMVdytmo NGNG
Visualc++6
でマイクロソフトの機能使わずに
ウィンドウ表示させるコードってあるの?
0599ssssssNGNG
>>598
マイクロソフトの機能?ってどの部分?
開発環境のことか、それともAPIのこと?

てか、その前にスレ違いだけどな。
http://pc3.2ch.net/test/read.cgi/tech/1018239290/l50
この辺で聞いてみたら?
0600デフォルトの名無しさんNGNG
>>597
iostreamライブラリはC++用なので、Cでは使えないです。
0601デフォルトの名無しさんNGNG
option == 'S'
0602デフォルトの名無しさんNGNG
何がおかしい?
void item(void)
{
int item;
int howMuch[6]={100, 100, 125, 75, 75, 100};

cout << " 1 2 3" << endl;
cout << " Coke Sprite Orange Juice" << endl;
cout << "$1.00 $1.00 $1.25" << endl << endl;

cout << " 4 5 6" << endl;
cout << " Mars Oh Henry! Kit-Kat" << endl;
cout << "$0.75 $0.75 $1.00" << endl << endl;

cout << "Select the item:";
cin >> item;
clrscr();

if (item == 1)
cout << "Please deposit $1.00";
else if (item == 2)
cout << "Please deposit $1.00";
else if (item == 3)
cout << "Please deposit $1.25";
else if (item == 4)
cout << "Please deposit $0.75";
else if (item == 5)
cout << "Please deposit $0.75";
else if (item == 6)
cout << "Please deposit $1.00";

deposit();
}


void deposit()
{
int dep, change, i;

cout << endl << endl;
cout << "Enter how much you are going to deposit" << endl;
cin >> dep;

change = dep - howMuch[i - 1];
cout << "Your change is " << change << endl;
}
0603デフォルトの名無しさんNGNG
>>602
・スレ違い
・状況を書けや
0604デフォルトの名無しさんNGNG
>>602
iってなんやねん
0605デフォルトの名無しさんNGNG
else if else if else if... キモ
0606602NGNG
よくわからんねん。
void item()で品を選ぶっしょ。
んで、選んだ番号によって値段が違うんだけど、その値段をどうやって
deposit()のほうで使うん?
この辺がようわからん。change = dep - howMuch[i - 1];
0607デフォルトの名無しさんNGNG
引数を知らんのか
0608デフォルトの名無しさんNGNG
>>606
・itemをdepositに渡せばいいじゃん。
・スレ違い
0609602NGNG
どうやって?
0610デフォルトの名無しさんNGNG
宿題カナ?
とりあえず、depositを関数に分けずに書いたら?
0611デフォルトの名無しさんNGNG
マジックナンバー、ハードコード、ほとんど同一の行だらけか。
ド下手。

多分質問の答え:
・howMuch[] が deposit()からアクセスできないね。
・deposit()にプロトタイプ宣言が無く、C++のようなので、これもエラーだな。
0612デフォルトの名無しさんNGNG
else if else ifのかわりに配列でもつかったら?
0613602NGNG
C++です。ここスレ違いね。
宿題なんだけどさ。
自動販売機作れとか言いやがってさ、さっぱりよ。
ってことはdeposit()の方に
int howMuch[6]={100, 100, 125, 75, 75, 100};こうすればいいの?
0614デフォルトの名無しさんNGNG
>>613
全部グローバル変数にしたらw
0615デフォルトの名無しさんNGNG
引数を知らんちゅーことは、授業をまるっきり聞いてなかったちゅうことか?
0616モヒモヒNGNG
まあ、サルだから
0617デフォルトの名無しさんNGNG
何はともあれ宿題スレに移動したら?
http://pc3.2ch.net/test/read.cgi/tech/1027756023/l50
0618602NGNG
カナダでこのC++の授業とってんだけど、英語むっちゃ難くてさっぱりなんよ。
グローバル変数ってGlobal Variableって事?
あー、やんなってくる
0619デフォルトの名無しさんNGNG
>>617
616は確信犯だから何言っても無駄だと思われ
0620デフォルトの名無しさんNGNG
>>618
ふざけているんだね?
0621デフォルトの名無しさんNGNG
>>618
スレ違いという日本語は理解できてマスカ?
0622デフォルトの名無しさんNGNG
>>618
日本の評判を落とすのはやめてください
0623デフォルトの名無しさんNGNG
getchar ってキーボードからどう入力すればいいんですか?
c = getchar ();
putchar (c);
c = getchar ();
putchar (c);
上のコードに対して、(1 改行)と打つと 1 が一回だけ表示されて
終了してしまうのですが
0624デフォルトの名無しさんNGNG
>>623
getcharを使わない。
0625名無しさん@カラアゲうまうまNGNG
>>623
禿ファック。
とりあえずこのスレ全毒してみろ。
0626デフォルトの名無しさんNGNG
>>623
鼻フック
0627デフォルトの名無しさんNGNG
>>623
尻キック
0628デフォルトの名無しさんNGNG
>>623
1がちゃんと入力されてるやん
まったくもって正常な動作やん
0629デフォルトの名無しさんNGNG
linux/drivers/char/mem.cというファイルを眺めていました。
531行目に以下のような記述があります。

static struct file_operations mem_fops = {
   llseek:  memory_lseek,
   read:   read_mem,
   write:  write_mem,
   mmap:  mmap_mem,
   open:  open_mem,
};
この”:”は何を意味しているのでしょうか?
これは処理としてはあるファイルに特定の処理を結びつけて
入ること自体は分かるのですが、Cにこんな記述があったのか
どうかよく分かりません。K&Rにも書いてないし。。

よろしくお願いします。
0630デフォルトの名無しさんNGNG
補足:
memory_lseekやread_memは同じファイルにstaticな
関数として宣言されています。
0631デフォルトの名無しさんNGNG
>>629
ビットフィールドじゃないの?
0632デフォルトの名無しさんNGNG
ビットフィールド?
0633デフォルトの名無しさんNGNG
>>629
ビットフィールドだろ?
本当にK&Rに載っていなかったか?
0634デフォルトの名無しさんNGNG
計算機プログラムのソースをもっている方はください
0635デフォルトの名無しさんNGNG
linux/include/linux/fs.hには以下のようにfile_operationsが定義されています。

struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
int (*readdir) (struct file *, void *, filldir_t);
unsigned int (*poll) (struct file *, struct poll_table_struct *);
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *);
int (*open) (struct inode *, struct file *);
int (*flush) (struct file *);
int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, struct dentry *, int datasync);
int (*fasync) (int, struct file *, int);
int (*lock) (struct file *, int, struct file_lock *);
ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_
ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, i
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned l
};
仮に先の”:”がビットフィールドだとするとどう解釈すればいいのでしょうか?
個人的には構造体の初期化用の何かシンタックスなのかと予想していますが
どうでしょうか?。今回のケースで言えば、特定のメンバ(今回のケースで言えば
関数ポインタ)を初期化しているように見えるのですが。。
0636デフォルトの名無しさんNGNG
ビットフィールドだったら、
struct Hoge {
 int n : 3;
};
見たいな書き方になるんじゃないの?
0637デフォルトの名無しさんNGNG
>>635
たぶんgccの拡張で、指定フィールドの初期化とか、
なかったっけなぁ?

>>631,>>633
プ
0638デフォルトの名無しさんNGNG
>>637さん
>gccの拡張で、指定フィールドの初期化とか
ありがとうございました。謎が解けました。感謝します。
0639デフォルトの名無しさんNGNG
>>637
いちいち細かいところまで見ていられるかよ。
というか>>629==>>637は釣り師だろ。
0640デフォルトの名無しさんNGNG
629=635=638=私です
古いLinuxのソースを見てみたら、通常通りの
初期化をしていました(必要のないメンバはNULL指定で、
全てのメンバの値を羅列)。
これでパフォーマンスに及ぼす影響はどれぐらいになるんで
しょうかね。興味深いところではありますね。
0641デフォルトの名無しさんNGNG
>>640
標準Cじゃないと分かったんだから、そろそろスレ違いだと思わない?
0642デフォルトの名無しさんNGNG
Linuxのソースなんてよめねーよ
0643デフォルトの名無しさんNGNG
このスレってANSI Cじゃないとダメなの?
そんなこというと各コンパイラスレがたってうっとおしいことになりそうだが。
0644デフォルトの名無しさんNGNG
>>643
質問の際は使用コンパイラを明らかにするべし。
0645デフォルトの名無しさんNGNG
必死すぎて見てらんない
0646デフォルトの名無しさんNGNG
>>644
オリジナルのコンパイラですがなにか?
0647デフォルトの名無しさんNGNG
Linuxのソースと書いてあるんだから(略
0648デフォルトの名無しさんNGNG
>>645
みなくてよろし
0649デフォルトの名無しさんNGNG
構造体宣言と実体定義の違いが、「細かいところ」かのぅ?
0650デフォルトの名無しさんNGNG
えっとですね、ヘッダに変数のextern宣言をまとめたいのですよ。
で変数のなかに
size_t marukome;
とか言うのがあるんですが、ヘッダファイルで
#include <stdio.h>ってやったほうがいいんでしょうか。
それとも普通はやらないのでしょうか。
0651デフォルトの名無しさんNGNG
>>650
size_tならstddef.hの方がよくない?
0652650NGNG
>>651 いや・・・。そゆことではなく・・・。
0653デフォルトの名無しさんNGNG
へっだでsize_t使ってるんなら、stddef.h、もしくは
それをincludeしてるヘッダを取り込まないとエラーが出ると
思うんだが…。
0654デフォルトの名無しさんNGNG
>>650
どっちでもいいと思う。俺はそうする。
0655650NGNG
オッケーでス。どうもでス。
0656デフォルトの名無しさんNGNG
>>654
よくねーだろ。
0657デフォルトの名無しさんNGNG
なんで?
0658デフォルトの名無しさんNGNG
>>657
エラーが出るかもしれないから、だろ。
0659デフォルトの名無しさんNGNG
ソースでinclude した後でinclude したらどうなる?
0660Ruby厨なひと(802)NGNG
ぶぁーか(ぷうぷぷぷ
0661デフォルトの名無しさんNGNG
>>659
普通は2重にインクルードしないようにおまじないを書いとく
0662デフォルトの名無しさんNGNG
標準ヘッダファイルってインクルードガードされてるとは
限らないんだっけ。
0663デフォルトの名無しさんNGNG
ANSI C言語辞典の「標準ヘッダ」の解説だと、与えられた
有効範囲で2回以上組み込むことができて、その効果は1回
組み込んだ場合と同様、とありますから、同じ翻訳単位で
複数回インクルードされても問題ないんじゃないでしょうか。
もちろん自作のヘッダファイルをインクルードガードする
必要はあるでしょうけど。
0664デフォルトの名無しさんNGNG
インクルードガードしないヘッダーは何か意味があるの?
おれにはそれをしない理由が分からないのだが
0665デフォルトの名無しさんNGNG
初歩的な質問ですいません

int nc=0;
while((c=getchar()) != EOF){
++nc;
}

printf("nc = %d", nc);

として文字数を数えるために、EOFを入力してループを抜けたいのですが
EOFの入力の仕方が分かりません。
Win98SEでやってるのですが、どうやって出すのでしょうか?
UNIXの場合はCtrl+Z(?)か何かで出来たような気がしたのですが・・・・TT
0666デフォルトの名無しさんNGNG
インクルードガードって結構後になってから出てきたような気がするんだが。
0667名無しさん@EmacsNGNG
>>665
Unixの場合はC-dだ. そこんとこヨロシク.
WindowsはC-zかC-dじゃなかった?
0668デフォルトの名無しさんNGNG
Ctrl+Z でなかたか
0669名無しさん@EmacsNGNG
そうだ, たしかC-zだったな.
サスペンドじゃん!って突っ込んだ記憶がある.
0670デフォルトの名無しさんNGNG
>>665
もうこないかな?
ctrl-zを入力したらEnter(Return)キーをタイプしないと駄目だぞ。
0671665NGNG
>>667-670
みなさんレスありがとうございます!
Ctrl+ZがWindowsだったのですね^^;

でも今やってみたところCtrl+Zでループを出ることは出来たのですが
そのままprintf()を実行しないままプログラムが終了してしまいました
Ctrl+Zを押したとたん終了してしまうのでRetunキーも押せないですしTT
せっかくK&Cを買ったのに一章で詰まってしまって泣きそうです><
0672665NGNG
>>671
K&Rでした><
スレ汚しすいません
0673デフォルトの名無しさんNGNG
>>672
その意気や良し!
まず、ソースを全部貼りつけてみな。
0674673NGNG
あとコンパイラも
0675デフォルトの名無しさんNGNG
>>674
コンパイラは10Kを超えているので貼り付けられないです。。。
0676デフォルトの名無しさんNGNG
>>671
一度ファイルに書き込んでから
a.exe < file
でいいのでは
0677デフォルトの名無しさんNGNG
>>671
俺の環境(winme+VC++6.0)でもそうなるよ。
なんでだろうね?
Linuxだとうまくゆくんだけどね。
0678デフォルトの名無しさんNGNG
#include <stdio.h>
int main(){
    int nc=0,c;
    while((c=getchar()) != EOF){
        ++nc;
    }
    printf("nc = %d", nc);
    return 0;
}
これで思ったとおりに動かないか?
0679678NGNG
ちなみにBCC32
0680デフォルトの名無しさんNGNG
おまえらちょっと待て
printf("nc = %d\n", nc);
にしる!
0681665NGNG
>>673
K&Rの写しでやってます
#include<stdio.h>

main()
{
long nc;

nc = 0;
while(getchar() != EOF)
++nc;
printf("%ld\n", nc);
}

コンパイラはBorland C++Compiler5.5を使ってます。

なぜか先ほどふと出来たのですが、まだすぐ出なくなってしましました。
なんでだろ^^;

>>676
あ、それだと出来ました。ありがとうございます!
0682デフォルトの名無しさんNGNG
>>678
できないですね。
プログラムが悪いんじゃなくて環境が悪いんです。
0683665NGNG
>>678
それでも出来ませんでしたTT
>>681のでやったとき極稀にできたりするのでとっても気になるのですが・・・・・・
やっぱり>>682さんの言うとおり環境の問題なのかな
0684名無しさん@EmacsNGNG
K&RでCの勉強するならUnix系OSにしたほうが良くないか?
あれ, たしかシステムコールの話とかも載ってただろ.
forkとかWin系じゃ動かないんじゃなかったっけ?
Linux厨だから外してたらスマソ.
0685駄目だとは思うがNGNG
fflush(stdout);
をprintfの下に追加してみよう。
0686デフォルトの名無しさんNGNG
>>685
さっき駄目もとでsetvbufでstdoutをunbufferedにしてみたけど駄目だったからfflushしても駄目じゃないかな?
0687686NGNG
というか、^Zした時点で終了しちゃうのよね・・・
0688名無しさん@EmacsNGNG
>>686
setvbuf使わなくてもsetbuf(stdout, NULL)じゃダメ?
0689デフォルトの名無しさんNGNG
a.out > ofile
でやったら一応出力されてた
0690665NGNG
>>684
システムコールって何なのか良く分からないのですが、最終章に
UNIXシステム・インターフェイスってのがあるのでこれのことなのかな?
まだ一章なので(汗)、この章まで来たらLinuxを入れてみたいと思います。
助言ありがとです

>>685 >>688
やらせていただきましたけど、駄目でした><
0691デフォルトの名無しさんNGNG
>>690
=APIでいいっしょ。
0692デフォルトの名無しさんNGNG
>683
それはwin9xのdos窓のバグ(仕様)

「ユーザがCtrl-Zを叩いた後、次の改行までの表示が行なわれない」

ということらしい。ソースがどこだったか忘れた。
0693デフォルトの名無しさんNGNG
Ctrl+Z についての話題があった
http://216.239.33.100/search?q=cache:4ayXuM-HcaIC:f1.aaacafe.ne.jp/~pointc/log100.html+%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB+%E3%83%90%E3%82%B0+Ctrl%2BZ&hl=ja&ie=UTF-8&inlang=ja
0694665NGNG
>>692-693
出来ました^^
すっごいうれしいです。

みなさまありがとうございましたm(_ _)m
0695デフォルトの名無しさんNGNG
mpichのサンプルプログラムを見ていたら、関数の引数にvoid *bufってのがありました。これはどう解釈すればよいのでしょうか?voidだから何もないはずなのに、ある!
0696デフォルトの名無しさんNGNG
>>695
おまじない。
0697デフォルトの名無しさんNGNG
つまりこの場合のvoidは何型でもよいって意味ですか?
0698デフォルトの名無しさんNGNG
void と void * は意味が全然違うよ。
0699デフォルトの名無しさんNGNG
>>695
● void ポインタ

void * は、あらゆるポインタ型からキャスト可能で、
あらゆるポインタ型にキャスト可能な汎用ポインタ型である。
実体は、他のポインタ型と一緒でただのアドレス。
そのアドレスの先に何があると思うかはプログラマ次第。

参考はこの辺
ttp://www-mbi3.kuicr.kyoto-u.ac.jp/~hattori/
0700デフォルトの名無しさんNGNG
>697
void=日下部陽一氏のHNだ。
あまり連呼すると出現しちゃうから気をつけろ。
0701デフォルトの名無しさんNGNG
>>700
これ、召喚するな。
0702デフォルトの名無しさんNGNG
>>700-701ワラタ
0703shigeNGNG
呼ばれて出てきてジャジャジャジャ〜ン
0704デフォルトの名無しさんNGNG
In articleを見なくなって久しいな。
たまにはこいよvoidたん。
0705デフォルトの名無しさんNGNG
>>703
お前はカエレ
0706Kusakabe YouichiNGNG
このスレッドは「C言語」とタイトルにある時点でだめですね。
(CとC言語の違いが分からないようでは問題外ですが)
また、釣れたなどと喜ぶ人が居るんでしょうね;)
0707デフォルトの名無しさんNGNG
>>706
>>706
DivX 5.0.2の動画も比較的スムーズになったように見えます。
少なくとも、最初で駒落ち気味だったような動画が駒落ちしなくなりました。

…案外お勧めっぽいかも知れません。
0708Kusakabe Youichi NGNG
In article >>4, 4 Kusakabe Youichi <[email protected]> wrote:
()の数も合わせられないおかしな人が、いきなりでてきましたな(^^;
0709デフォルトの名無しさんNGNG
本物でてこねーかな。奴はあれでなかなか強敵だからな。
0710デフォルトの名無しさんNGNG
日下部陽一を知らない人はhttp://www.nurs.or.jp/~nspixp/void/を熟読しておくように。
0711デフォルトの名無しさんNGNG
知らない人は知らないままでよい
0712デフォルトの名無しさんNGNG
×知らないままで ○知らないままのほうが
0713デフォルトの名無しさんNGNG
(´д`) ママ…
0714デフォルトの名無しさんNGNG
long long 型っていうのはANSI C規格にあるんですか?
0715デフォルトの名無しさんNGNG
>714
C99で正式に「long long int およびunsigned long long int型は少なくとも64bit以上の値である」ことが定められてます
0716デフォルトの名無しさんNGNG
>>715
なるほど、C99で規格に盛り込まれたのですね。どうもです。
0717715NGNG
値である→値を持つ、だった
細かいけど
0718デフォルトの名無しさんNGNG
C99を詳しく紹介しているページを発見。
http://seclan.dll.jp/c99d/
ふーん、//のコメントって、C言語でもOKになったのか・・・
0719デフォルトの名無しさんNGNG
そろそろK&Rスタイルは辞めて欲しいよな。
0720デフォルトの名無しさんNGNG
ブール型に _ が付いてるのがちょっとやだな。
0721デフォルトの名無しさんNGNG
C99改訂の際に某C雑誌で翻訳記事を担当したのがvoi(略
0722デフォルトの名無しさんNGNG
>>721
奥さんじゃなくて?
0723デフォルトの名無しさんNGNG
keikoタン、ハァハァ
0724デフォルトの名無しさんNGNG
>>722
探してみたら

      Cの標準規格の改訂版
      The Revised C Standard
   ______________
          P.J.Plauger
   ――――――――――――――
    翻訳:日下部圭子・日下部陽一
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

ってなってた 奥さんがやったのをチェック、、ってとこか
0725デフォルトの名無しさんNGNG
>>721
それってCマガ?
奴の記事が載っている号があったら教えてくれ。
そこだけ焼却処分にするから。
これから載る号も頼む。立ち読みで済ますから。
0726724NGNG
CマガAPR.2000 P.16-20
もっとも、漏れにはその次の特集記事「プログラミングの禁じ手」がかなり役に立った、というか未熟さを痛感させられた
0727デフォルトの名無しさんNGNG
Cマガなんてまだ読んでるの?
あれに書いてあるような薄っぺらい内容のものなら、
書籍買って深く知るほうがいいと思うけど。
雑誌の記事は結局参考文献を知る程度にしか使えない。
0728デフォルトの名無しさんNGNG
>>727
まあこっちにでもお勧め書いてくれ
http://pc.2ch.net/test/read.cgi/prog/1006353701/l50
0729デフォルトの名無しさんNGNG
よく使う変数宣言をひとまとめにマクロにして宣言するのは変かな?
#define VALUE int aa; int bb;
int main()
{
  VALUE
  ・・・
0730デフォルトの名無しさんNGNG
キショ
0731デフォルトの名無しさんNGNG
>>730
そんな冷たくあしらわないでください。
もうすでに、それでかなりのボログラムを
書いてしまったので、どうしようもありません。
0732デフォルトの名無しさんNGNG
>>731
全部捨てろ。
0733デフォルトの名無しさんNGNG
>>729
そのaaとかbbって名前でいろんなコードに使ってるのならマジキショい
それに宣言文自体が使うところから見えなくなるのは保守に悪い。グローバル変数と区別つかん
0734730NGNG
そか、悪かった
もう何も言わん
0735デフォルトの名無しさんNGNG
>>731
> もうすでに、それでかなりのボログラムを
> 書いてしまったので、どうしようもありません。
お前のエディタには文字列置換もないのかと小一時(略
0736デフォルトの名無しさんNGNG
>>729
やめてくれ
そゆアホなことをするから、糞ソースが出回ることになるんだ
0737初心者NGNG
static unsigned char buf[2][MAXSIZE]; /* 受信電文組み立て場所 */
static unsigned int counter[2];/*組み立て中の電文の文字数 ( <SCIMESSIZ) */

がどっちもグローバル変数で、sci_rx_line[2]のなかに電文を組み立てて
行きたい場合、1文字受信するごとに


*( buf[port]+counter[port]) = 'h' ;
counter[port]++;

ってな感じで組み立てていけばいいんですか?
要するに1行目のポインタ演算に自信がないんですが。
0738初心者NGNG
SCIMESSIZ = MAXSIZE です。スマソ。
0739デフォルトの名無しさんNGNG
それだけの説明じゃ何のことかさっぱりわからん
0740デフォルトの名無しさんNGNG
なんだ、まだvoid来てないのか
0741737NGNG
>>739 スマソ

っていうか解決すました。スレ汚してすみません
0742デフォルトの名無しさんNGNG
>>737
自信がなければ
buf[port][counter[port]]='h';
とするのがシンプルでいいと思われ。
0743デフォルトの名無しさんNGNG
22:22をお知らせします
0744デフォルトの名無しさんNGNG
そう
0745 NGNG
脳内で受信したデムパをバッファリングして、ファイルに落としたいのですが
割り込み処理の

void interrupt far int_recv(void)
{
  buf[++rec_cnt] = inp(BRAIN_IN);
}

がどうしてもうまくいきません。
どなたかいい方法ご存知ですか?
(Cしか分からないので、Cでおながいします)
0746デフォルトの名無しさんNGNG
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| 電波を感知しました。 |
|__________|
              / /
              /
      _         ビビビ
     /||__|∧    /
  。.|.(O´∀`) /
  |≡( ))  ))つ
  `ー| | |
    (__)_)
0747名無しさん@EmacsNGNG
>>745
farかよ!
0748デフォルトの名無しさんNGNG
rec_cnt++ ではないのか
0749 NGNG
>>748
それもありました。
でも今の問題は、割り込み処理自体に入らないのです。
あと、タイムアウト用大麻も正常に動作してないようです。
戻ってくる時もあるし、永遠ループになる時もあるし・・・。
デムパはほぼ四六時中受信してるので、テストはいつでもできるんですが。
0750デフォルトの名無しさんNGNG
C++なら
void interrupt far int_recv(void)
{
  try {
    buf[++rec_cnt] = inp(BRAIN_IN);
  }
  catch (std::bad_dempa) {
    // 例外処理
  }
}
0751デフォルトの名無しさんNGNG
デバッグ用に、色々な関数群の内部処理のログ出力をfprintfで出したいんですが、
それらの関数を呼ぶたんビに、通常の引数といっしょに
ファイルポインターをいちいち渡さないといけないのですが、何かこのあたりのエレガント
なソースの書き方ってありますかね?やっぱりファイルポインターも含めたおっきな
データ構造体を渡すしかないですかね?
0752デフォルトの名無しさんNGNG
stderr
0753デフォルトの名無しさんNGNG
リダイレクトは?
0754デフォルトの名無しさんNGNG
>>751
デバッグ用ならこうすれ。

void dprintf(const char *format, ...)
{
  va_list ap;
  FILE *fp;

  if (!(fp = fopen("debuglog", "at"))) {
    return;
  }
  va_start(ap, format);
  vfprintf(fp, format, ap);
  va_end(ap);
  fclose(fp);
}

使い方。

dprintf("%d: %s\n", i, s);

printfとおんなじ。
0755751NGNG
>>754
まさにこういうのが求めていた奴です。泣けました。ありがとうございます。うぅ涙で
画面が見えません。
0756デフォルトの名無しさんNGNG
>>755
ファイルポインターはグローバル変数にしてもいいよ。
printfだって、stdoutというグローバル変数を使ってるわけだし。
0757754NGNG
で、デバッグが終わったらdprintfは一括して削除したくなると思う。
こういうときにはマクロを使う。

#ifdef DEBUG
#define dprintf(...) DPRINTF(__VA_ARGS__)
#else
#define dprintf(...)
#endif

/* >>754のdprintfの関数名を変える */
void DPRINTF(const char *format, ...)
/* 以下は一緒 */

こんな感じで。上記の#ifdef〜#endifとDPRINTFのプロトタイプをヘッダに書いておいて、
それぞれのソースで#includeすればよろしいかと。

デバッグ中は#define DEBUGしとけばいい。gcc だと

 gcc -DDEBUG foo.c

って感じ。デバッグコードを取り除きたくなったら -DDEBUG をはずせばいい。
でもgccでこういう可変長引数マクロが使えるかどうかは確認してない(w

というか、>>754を書いた後で可変長引数マクロをC99で
使えるようになってないかなと思って調べたら
ttp://seclan.dll.jp/c99d/c99d02.htm#dt19990405
というのがあったのだった。これ、おれがCに一番欲しかった機能だ。
8年前にあればなあ…。今は仕事でCを使ってませんです。
0758デフォルトの名無しさんNGNG
>>757
今は可変長マクロなんて便利なものがあるんだぁ。
昔は2重カッコで苦労したもんだ。シミジミ
0759758NGNG
s/2重カッコで/2重カッコを使ったマクロで/
0760デフォルトの名無しさんNGNG
>>754
個人的にはその都度ファイルオープンとクローズを繰り返すのは抵抗あるので
やはりグローバル変数に一票かな
0761デフォルトの名無しさんNGNG
わしは>>753に一票かな。
0762デフォルトの名無しさんNGNG
>>754
fopen/fcloseしないで、fflush使ったらだめなのか?
前に試してみたら、大丈夫そうなので使っていたが…
環境に依存したりするんだろうか。

まぁ、この場合はグローバル変数を使って実装することになるんだけど。
0763デフォルトの名無しさんNGNG
Cで連想配列みたいなものを作りたいのですがどうするのがいいですか?
具体的には、
'a' → "a.bmp"
'0' → "0.bmp"
'@' → "atmark.bmp"
(これが合計50字前後)
という感じに、char1文字を与えたとき、それに対応する文字列へのポインタ
を返すような関数(連想配列?)がほしいんですが。
0764デフォルトの名無しさんNGNG
>>762
環境依存はどうだろうね。
やるとすれば実装はこんな感じになるかな。

void DPRINTF(const char *format, ...)
{
 static FILE *fp = NULL;
    :
    :
 if (!fp) {
  if (!(fp = fopen("debuglog", "at"))) {
   return;
  }
 }
    :
    :
 fflush(fp);
}

DOSだとまずかったかもしれないがよく覚えてない。
ま、DOSなんて捨ててもいいんだけど。いやよくないかな(w
あとUNIX系を前提にできればsyslogを使う手もあるね。
0765デフォルトの名無しさんNGNG
>>763
char *a[256];
a['a'] = "a.bmp";
a['0'] = "0.bmp";
a['@'] = "atmark.bmp";

これでできるよ。ただ、aの要素数255は環境依存だけど、
ま、大抵charは8bitだから大丈夫だろ(w
0766デフォルトの名無しさんNGNG
>>765
なるほど、そんな単純でいいんですか。
大分悩んでいたのに一瞬で解決してしまいました。
どうもありがとうございました。
0767762NGNG
>>764
オレは、関数内のstatic変数が仕様変更に弱いという考えを持っているんで、
グローバル変数にして、プログラムの先頭でfopenをする関数を呼ぶようにすると思う。
まぁ人の好みだけど。

試したのは確かVCだった。
DOSはファイルをオープンしたまま異常終了すると
同時にオープンできるファイルの数を食いつぶしていく
って問題があったような気がする。
0768デフォルトの名無しさんNGNG
>>767
漏れは動いた分のログは全部欲しいもので関数内でopen/closeしてます
まあ考え方の差ですが
0769デフォルトの名無しさんNGNG
>>763
単純な方法は>>765でいいとしても、仕様の拡張を考慮して、
ちゃんとしたものを作っておくのも勉強になると思うよ。
C++ の map や hashmap のようなものを、自分で作ってみるとか。
0770デフォルトの名無しさんNGNG
初心者本を一通り読み終えた者です。

Cでかちゅ〜しゃ等のWinアプリケーションを作りたいのですが、可能でしょうか?
今のところ、ファイルやDOSに出力する方法しかわからなく、困っております。

Cには、例えばJAVAで言えば、java.awt.*クラスのような、アプリケーション
作成に適した関数は用意されていないのでしょうか?

コンパイラはcygwinを使っています。
どうぞ、よろしくお願いします。
0771名無しさん@EmacsNGNG
おとなしくjavaを使って書くというのはどうだろう.
0772770NGNG
>>771
レス、ありがとうございます。
JAVAではユーザーが限られてしまうので、ちょっと・・・。

僕の目標はフリーソフトで、かちゅ〜しゃみたいな、人気にちゃんソフトを
作る事なのです。そのためにCを勉強したのですが、前述のような
内容でつまずいてしまいました。今日も秋葉原の本屋で、調べてみたの
ですが、一向につかめません。

かちゅ〜しゃって言語は何で書かれてるんでしょうね。
0773デフォルトの名無しさんNGNG
>>772
かちゅ〜しゃはDelphi。

おとなしくVBを使うのはどうだろう。

VC++でもいいけどかなりの知識が必要だYO!
0774770NGNG
>>773
貴重な情報ありがとうございます!

VBですか・・・それもありですよね。
CでWinアプリケーションを作るのは、簡単な事だと思ってました。
だって、初心者本にCは何でも出来るYO!ヽ(`д´)ノて、
書いてあったし、、くそー、、(笑)
0775デフォルトの名無しさんNGNG
なんて本さね
0776デフォルトの名無しさんNGNG
>今のところ、ファイルやDOSに出力する方法しかわからなく、困っております。

printfだけわかったんだね。


>初心者本にCは何でも出来ると書いてあった

「何でもできる」 = 「簡単なこと」 って、すごい脳内変換だな・・・
「猿にでもできるCげんご」でも読んだのなら別だが


・・・はぁ? 一生無理だな、こりゃ。
0777770NGNG
>>775
塚越一雄著:はじめてのC言語であります!
>>776
そうなんです(笑)。あと、リダイレクト、、
とりあえず、極めればWinアプリケーションも作成可能という事ですよね?
もうちょっとCを勉強してみることにします。
0778デフォルトの名無しさんNGNG
Cを極めてもWinアプリは作れないと思われ。
0779デフォルトの名無しさんNGNG
C でWINアプリを作るのはかなりの遠回り。
0780770NGNG
>>778
>>779
マジで鬱です、、
その為にCを勉強したのに、、
UNIXアプリなら余裕っぽいですね。でもUNIXか、、
やっぱユーザー人口的にもWinがいいですね、、
Delphiでも勉強しようかな、、
0781デフォルトの名無しさんNGNG
>>780
UNIXでかちゅ〜しゃを作るのは余裕ってこと?

そんな余裕どこから出てくるんだ?
0782デフォルトの名無しさんNGNG
>>780
GUIなものを作りたいんだったら、UNIX上(X)でもC以外のことを知る必要があるよ
0783770NGNG
>>781
ああ、そんな初心者をいじめないでやって下さい(笑)
0784デフォルトの名無しさんNGNG
>>780
Cでも窓アプリつくれるよ
SDK + VC++ とかで
0785770NGNG
>>782
そうなんですかー、、
僕はJavaから入ったいわゆる、Java厨って奴なんで、
GUIに対して楽勝っていう先入観がありましたね。甘かったです。
0786770NGNG
>>784
情報ありがとうございます!
やはり、Delphiではなく、せっかくCを学んだのですから、
そちらの言語に進んだほうがいい気がしますね。
ちょっと考えて見ます。
0787dNGNG

-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
0788デフォルトの名無しさんNGNG
>786
そういうケチくさい根性のせいで無駄な苦労をしてる奴の多いこと多いこと(藁
0789デフォルトの名無しさんNGNG
>>770
Javaやっていたひとなのに、C++じゃなくてCをやるの?
0790デフォルトの名無しさんNGNG
>>786
cygwinでも-mwindowsを指定すればwinアプリはつくれるでしょ
0791デフォルトの名無しさんNGNG
>>790
Cでwinアプリを作れるか否かではなくて、
Cの知識だけでwinアプリが作れるか?って話じゃないの?
0792770NGNG
>>788
、、、
>>789
ええ、なんとなくCを、、でも、初心者本の内容はすぐ理解出来ましたよ。
Javaとあんま変わらないですよね。Cも。
>>790
アプリケーションというか、かちゅーしゃみたいなGUIを作りたいというか、
そのコマンドについては勉強しておきます。
0793770NGNG
>>791
まあ、そういう事になりますね、、僕が勉強足らずだったということで、
申し訳無いっす。
0794デフォルトの名無しさんNGNG
>>792
Javaでも作れないんだろ?
かちゅ。
0795デフォルトの名無しさんNGNG
>>792
Javaなんかと一緒にしてほしくない。
0796デフォルトの名無しさんNGNG
>>770
Cには組み込み関数はありません。
0797デフォルトの名無しさんNGNG
変数名の型がわかった所で、どのようなバグの混入を防げるというのだろうか?
その型が表せる数の範囲だろうか?それくらいしか思い浮かばない。
それくらいではメリットはない。むしろ、邪魔なくらいである。

俺的には,ちょー必要だと思うのだが。
0798デフォルトの名無しさんNGNG
>>797
?
0799デフォルトの名無しさんNGNG
>770
まぢレス。
俺の場合。
C言語->C++言語(主にClass?)
->VisualC(いわゆるVC、SDKでC言語での窓の動作の仕組みを習得)
->MFCを使って普通に作る。
とりあえずここまでいけば
GUIで悩むのは終わりじゃないかな?
Cを学んだのは間違いとは思わないなぁ。
俺Cからのスタートだったし。
逆にVBとかJavaでGUIの動作について
考える機会が少なくて、学べないより
よっぽどいいんじゃない?
実際かちゅ〜しゃのGUI部分だけなら
あっというまに書けると思うよ。
「C言語のみ」って言わず、俺はMFC使えばだけどね。
まぁなんだ、がたがた騒ぐなw
出来るやつは出来るんだから。
できないならがんばれ新人。
0800デフォルトの名無しさんNGNG
>>770
C++Builderにしたら?
0801デフォルトの名無しさんNGNG
C++BuilderでもVC++でもgccでもいいが、とにかくJava知ってるんだから
CよりC++をお勧めする。

因みにC++BuilderはGUI関係のライブラリがPascalで書いてあって
C++より読みやすいよ(経験談)。もしPascalを知らないなら、
アルゴリズム記述言語だと思えば当たらずとも遠からず。
0802デフォルトの名無しさんNGNG
>797の質問がわかった所で、どのようなバグの混入を防げるというのだろうか?
その質問が意図するところは汎整数型の問題だろうか?それくらいしか思い浮かばない。
それくらいではメリットはない。むしろ、邪魔なくらいである。

俺的には,>797の文面はちょー理解不能だと思うのだが。
0803デフォルトの名無しさんNGNG
質問ですけど、プリプロセッサの条件コンパイルってどんな所で使うんですか?
実際プログラムを組んでいて#include と#define 以外を使ったことがありません。
どのような所で役に立つような技術なんでしょうか?
0804デフォルトの名無しさんNGNG
>>803
デバッグするときとそうでないときで、コンパイルするコードを切り替えたり、
処理系に依存する部分を分けたりする
0805デフォルトの名無しさんNGNG
>>770
書籍関連のスレに参考になりそうなレスがあったよ
0806803NGNG
>>804
>デバッグするときとそうでないときで、コンパイルするコードを切り替えたり、

いままで、 // debug line:200〜218
なんて事やってた俺って・・・。

ありがとうございます☆
0807名無しさん@EmacsNGNG
>>806
http://member.nifty.ne.jp/Ryuz/c/preprocessor.html
とか参考になるかも. 簡単なTipsだけだけど.
0808806NGNG
>>807
ほえ〜・・・。
こんな使い方があったんですね。

2重インクルードは駄目だったんだ・・・。
危なかった (w
0809デフォルトの名無しさんNGNG
>>808
もしかして標準のヘッダファイル読んだこと無いのか?
0810デフォルトの名無しさんNGNG
                         ┗0=============0┛
               \===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
            /三三三三三三三三三三三三三三三三三三三三\
                  0 │ |∞∞∞ |::|∞∞田田∞∞|::|∞∞∞ | ::|  0
            [二] | ::|       |::|┏━━━━┓|::|       | ::l [二]
◎○@※◎○@※. |□|.│ |┌┬┐ |::|┃/ .C.\┃|::| ┌┬┐| ::|. |□| ◎○@※◎○@※
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii| `)三(´| ::|├┼┤ |::|┃ ∧_∧ ┃|::| ├┼┤| ::|`)三(´il|iiii|iiii|iiii|iiii|iiii|iiii|iiii|
@※◎○@※◎○ | ::| | ::|└┴┘ |::|┃(´∀` ) ┃|::| └┴┘| ::| | ::|  @※◎○@※◎○
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li┏━━━━━┓|::|┃(.    つ┃|::|┏━━━━━┓ li|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l
◎○@iiii※◎○@ ┣┳┳┳┳┳┫|::|┗━━━━┛|::|┣┳┳┳┳┳┫ ◎○@iiii※◎○@
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l ○    ●        ∫∬∫∬        ●    ○ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li
               ○○  ●●      iiiii iii ii iiii       ●●  ○○
           [ ̄ ̄] [ ̄ ̄]   ( ̄ ̄ ̄ ̄ ̄)    [ ̄ ̄] [ ̄ ̄]
                |_○_|  .|_○_|     |_____|     |_○_|  .|_○_|

    ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
    (    )(    )(,    )(,,    )    ,,)(    )(    )(,    )(,    ;)
   とうとう糞言語の王様が……  ザワザワ  かわいそうに  ナモナモ……
0811808NGNG
>>809
標準のヘッダファイル???

私の場合、いきなりAppWizardでした・・・。
自作ヘッダを読む場合に、VCが勝手に作ったプリプロセッサが
とても気になったんです・・・(爆死)
0812デフォルトの名無しさんNGNG
ヘッダーファイルは何回読み込んでもよいとK&Rに書かれていたような気がするけど記憶違いかな?
今手元にないので確認できない。
0813デフォルトの名無しさんNGNG
>>811
stdio.hやstring.hのことだろ?
0814名無しさん@EmacsNGNG
>>812
インクルードガードしてあるから標準ヘッダに限っては何度読み込んでもよい
…じゃなかった? 俺も手もとにないからうろ覚えだけど….
0815811NGNG
夜中までご苦労様♪

>>813
ほとんどMFC使っていたので知りませんでした・・・(汗)
勉強不足の感あり・・・。
0816デフォルトの名無しさんNGNG
>>815
> 夜中までご苦労様♪

なんかむかつく
0817名無しさん@EmacsNGNG
>>816
まぁまぁ…確かに徹夜組が見ると殺気を覚えるかもしれんが….
0818解析NGNG
ご苦労様というのは目上の人が目下の人に使う言い方なので、
気をつけないと大変な時があります。「お疲れ様」が適切です。

ただ、♪をつけてる時点でどの道煽りっぽくなってるので
この場合はあまり気にする必要はないでしょう。
0819デフォルトの名無しさんNGNG
>ただ、♪をつけてる時点でどの道煽りっぽくなってるので
>この場合はあまり気にする必要はないでしょう。

ワラタ
0820デフォルトの名無しさんNGNG
業界によっちゃあ
ご苦労様 と お疲れ様 の意味合いが
完全に逆転しているところもあるしな
0821名無しさん@viNGNG
Cはもう古いというイメージがあるのですが、いまでもよく使われていますよね。
信者が多いからですか?
0822デフォルトの名無しさんNGNG
>>820
やくざやさんも逆転している。
0823C++使いNGNG
信者多すぎです。
なんでもかんでもCでやろうとします。
助けてください。
0824デフォルトの名無しさんNGNG
>>821
適材適所ってこと。
VBやC#なんかでOSやドライバを書こうとする馬鹿はいない。(いたらスマソ)
0825名無しさん@EmacsNGNG
>>823
そう? C厨は見掛けたことないなぁ….
0826名無しさん@EmacsNGNG
>>824
VBで書かれたドライバ…ヤダーヨ.
0827デフォルトの名無しさんNGNG
http://www.sra.co.jp/public/sra/product/wingnut/standards-j_toc.html#Design%20Advice

ここらへんとか。
0828デフォルトの名無しさんNGNG
>>827
おれはGNU信者だけど、GNUコーディング規約には反吐が出る。
0829デフォルトの名無しさんNGNG
長くなっても関数定義は一行にしたい
0830名無しさん@EmacsNGNG
>>828
俺もGNU信者だけどGNUコーディング規約は嫌い….
0831デフォルトの名無しさんNGNG
>>829
何文字までだったら、一行に書いても心が痛まない?
0832デフォルトの名無しさんNGNG
>>831
何文字でも。と言いたいけれど、さすがに100文字越えたら・・・
0833デフォルトの名無しさんNGNG
>>832
やっぱ100文字が心理的境界線だよね。
0834デフォルトの名無しさんNGNG
qsortの関数定義は変数名にもよるけど100文字くらいいきそう。
0835デフォルトの名無しさんNGNG
一行だと//コメントが書けねーよぅ
0836名無しさん@EmacsNGNG
>>835
言ってる意味が分からんのだが…?

>>834
typedef使って簡潔にまとめたらいいんじゃないか?
0837デフォルトの名無しさんNGNG
>>835
パラメータにひとつずつコメント入れる派?
0838デフォルトの名無しさんNGNG
>>824
Prologで書いたOSならありますぜ(w
0839デフォルトの名無しさんNGNG
そういえばJavaでOS書いたな。
0840名無しさん@EmacsNGNG
>>839
ソースきぼん
0841デフォルトの名無しさんNGNG
>>839
|-`).。oO(OS->VM->Javaで書いたOS->Javaで書いたOS用のVM->Javaアプリって感じかな?)
0842デフォルトの名無しさんNGNG
>>841
恐怖
0843デフォルトの名無しさんNGNG
VMを半分Javaで書いた。 どうしようもないところはネーティ部だけど。
0844デフォルトの名無しさんNGNG
OSちゃうやん
0845770NGNG
>>799
GUI奥深し、、ですね。ちょっとDelphiにいくか、C++系にいくか、考えましたが
C++系に行こうと思ってます。
>>800>>801
C++Builderという言語は存在自体知らなかったですね。今度調べてみます。
>>805
今からちょっとロムってみたいと思います。

皆様、いっぱいのレスありがとうございました。大変勉強になりました。
0846デフォルトの名無しさんNGNG
>>757
そういう都合を考えたら、syslogがいいなぁ・・
Windowsじゃ使えないけどね。

Windowsでsyslogみたいなことやれないかな??
知ってたら誰かおせぇて
0847デフォルトの名無しさんNGNG
>>823
> 信者多すぎです。
> なんでもかんでもCでやろうとします。
例えば、COBOLしかできなくて何でもCOBOLでやろうとするのは
COBOLerであってCOBOL信者ではない。
よって、なんでもかんでもCでやろうとするのは
ただのC厨(Cモンキーでも可)であって、信者ではない。

信者とは根拠もなく「××は最高だ!」とほざく奴らのこと。
で、C言語は最高だと言う奴はRuby, Delphi, VB, Java使い
とかと比較してあまり見かけない。
0848デフォルトの名無しさんNGNG
 _________
/∴∵∴ヽ
|∵∴∞ヽ|  _______
|∴/= ♀=| <C言語サイコー!
\|   ▽/   ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ̄ ̄
0849デフォルトの名無しさんNGNG
>>837
うん。
0850デフォルトの名無しさんNGNG
>>770
>C++Builderという言語は存在自体知らなかったですね。今度調べてみます。
「C++Builderという言語」は無いよ。念のためつっこみ。

DelphiはObjectPascalという名をやめてDelphi言語になるらしいけど。
それからするとC++Builer言語というのもそのうちに、、、なるわけ無いよな。
0851デフォルトの名無しさんNGNG
>>850
ある意味C++をDelphi言語に近づけたC++Builderという言語なのかもしれん。
0852デフォルトの名無しさんNGNG
うむ独自の言語拡張と(それを利用した)VCLで、もはやC++とは呼べん
0853デフォルトの名無しさんNGNG
言語自体は普通にC++だと思うけど。
VCLを扱うときに拡張キーワード使うことがあるってだけで、言語がDelphiに近いとは思わんが。
0854デフォルトの名無しさんNGNG
C++としても使えるというだけだな
0855デフォルトの名無しさんNGNG
> C++としても使える

なんか不満?
0856デフォルトの名無しさんNGNG
VCよりANSIに準拠してると聞いたような聞かないような。
違ったっけ。
0857デフォルトの名無しさんNGNG
VC++と比べてどうこうは置いといて、
> もはやC++とは呼べん
というのが、?だ。ま、スレ違いだしどうでもいいけど。
0858デフォルトの名無しさんNGNG
そういや昔 OWL なんていうのがあったっけな。
0859デフォルトの名無しさんNGNG
BCB6ユーザーですが、何か?
VCLを使う時だけC++らしくなくなりますが、それ以外はANSI-C++として
普通に使えますが何か?
0860デフォルトの名無しさんNGNG
>>859
スレ違い
0861デフォルトの名無しさんNGNG
>>858
OWL持ってる。BC5.0買ったからなぁ(w。一度もOWL使ったことないけど。
0862デフォルトの名無しさんNGNG
>>857
C++はほとんどの場合Cとして使えるがCとは呼べない
0863デフォルトの名無しさんNGNG
まあ、あんたがどう呼んでも構わないよ。
0864デフォルトの名無しさんNGNG
>812
何回読み込んでも平気だよ。
ただ、#defineや構造体定義などなどが二重定義で引っかかる。
0865デフォルトの名無しさんNGNG
'Flg' の初期化が 'case' ラベルによって行われませんでした。

case 0:
 bool Flg=true;
 break;
case 1:
 break;

なにがだめなんでしょうか?
0866デフォルトの名無しさんNGNG
>>865
Cならそれはダメだろう・・・。
0867デフォルトの名無しさんNGNG
case 0:{
 bool Flg=true;
 break;
}
0868デフォルトの名無しさんNGNG
普通は,
{}で囲うべき?
0869デフォルトの名無しさんNGNG
>>867
そうするとFlgは一度も参照されない変数に・・・。
0870デフォルトの名無しさんNGNG
そのFlgは何の役に立っているのかと小一時間(略
0871デフォルトの名無しさんNGNG
>>869
それが嫌ならswitch文の前で宣言すべし
0872デフォルトの名無しさんNGNG
>>871
小細工せずにはじめからそう教えるのがベストですな。
0873デフォルトの名無しさんNGNG
普通に switch ブロックの外で定義したらよいのでは。

case 1:
 Flg = false;
break;

なんてときに、Flg の定義が飛ばされて矛盾するからでは
ないのだろうか。
0874871NGNG
私は867じゃないが?
0875867NGNG
いや、switch内は大幅に省略されているとみたもので、、
0876デフォルトの名無しさんNGNG
>>875
それにしても書いたとき自分で気持ち悪くならなかったのかと思って。
0877初心者NGNG
連続したファイル名を作る方法を教えてください。

for などでループして、i=0 ....10 とかで

file1
file2
file3
...
file10

というような感じで作りたいんですが、ループの数字を
ファイル名に足す方法がわかりません。
初心者過ぎてすみません。

0878デフォルトの名無しさんNGNG
itoa
strcat
0879名無しさん@EmacsNGNG
まぁsnprintf使う程のモノでもないわな.
俺は可読性重視でsnprintf使うが.
0880デフォルトの名無しさんNGNG
sprintf(s,"file%d",i);
0881デフォルトの名無しさんNGNG
C言語でとにかくグラフィックを出力したいのですが
もっとも簡単に出力するやりかたを教えてください
グラフィック版hello worldのような
0882デフォルトの名無しさんNGNG
main(){printf("( ´∀`)");}
0883名無しさん@EmacsNGNG
>>881
残念ながらC言語では標準のGUIライブラリはない == 処理系依存.
WindowsでVC++使ってるんならWin32APIやMFCあたりがメジャー.
Unix系(Linux含む)ならXlib, motif, GTK+, qtあたりかな.
自分で調べて気に入ったの使え.

…っていうか処理系ぐらい書けや, ゴラァ!!
0884デフォルトの名無しさんNGNG
>>880
発想に惚れ惚れしたよw
0885デフォルトの名無しさんNGNG
↑
>882
ですた。
0886881NGNG
>>882
(;;
>>883
グラフィックを出力するにはそういう
外付けが必要だったんですね
わかりました
ありがとうございます
0887877NGNG
>878
>879
>880
うーむなるほど、どうもありがとうございました。

0888デフォルトの名無しさんNGNG
>881
ttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
0889お願いしますNGNG
int sample(void){
int i;
time_t tt;srand(time(&tt));
i=rand()%100;
return(i);
}
void main(){
int p,x=1;
while(x<1000){
x++;
p=sample();
printf("%d\n",p);
}
}
//////////////////////////////////////////////////////////

イメージとしてはいろいろな数字がずらずらーと表示されるはずだったのですが
実行しても同じ数字しか吐き出しません。なぜなのでしょう?
0890デフォルトの名無しさんNGNG
>>889
time()の値が変わるタイミングよりも、
main()でsample()が呼ばれるタイミングが早いので、
sample()内のsrand()への引数が常に同じ値になってしまうのが原因。

試しにmain()のwhileの最後にsleep(1);を追加してみれば
値が毎回変わることを確認できるはず。
0891デフォルトの名無しさんNGNG
srandはrandの初期化をする。
srandの引数に同じ値を渡すと、当然直後のrandの値は同じになる。
ということは・・・
0892名無しさん@EmacsNGNG
>>889
srandはmainの中で1度だけ実行すれ.

あとrand()は%とセットで使わないほうがいい. manだとrand(3)参照.
0893889NGNG
>>890-892

こんな朝早くからありがとうございます。
もう少しがんばってみます。
とりあえずお礼まで。
0894デフォルトの名無しさんNGNG
プログラマーの朝が早いのか、夜が遅いのか・・・。
早朝って微妙な時間帯だよねー。
0895デフォルトの名無しさんNGNG
寝てないだけだろ。
あまり突っ込むと、おれみたいに不機嫌になるぞ?
0896デフォルトの名無しさんNGNG
怒らないでよー。カルシウム取ろうよー。
0897デフォルトの名無しさんNGNG
おれは酔っ払ってこれから寝るところだよ。
よいこのプログラマは真似しちゃだめだぞ。
0898デフォルトの名無しさんNGNG
魔板も無板も空気がカリカリしすぎだよね
プログラマ志望としては萎える
0899デフォルトの名無しさんNGNG
#include <stdio.h>
#include <math.h>

#define pi 3.141592 /*円周率*/

int second;/*秒*/
int from;/*何秒から*/
int to;/*何秒まで*/
double r;/*ラジアン*/
float kaku;/*度*/
float v0;/*初速度*/
float g=-9.8;/*重力加速度*/
float vx;/*x軸の速度*/
float vy;/*y軸の速度*/
float xx;/*x軸の距離*/
float xy;/*y軸の距離*/

int main()
{
printf("放物線運動の秒毎の速度と位置を出力します\n");
printf("初速度を入力してください\n");
scanf("%f",&v0);
printf("x軸に対する角度を入力してください\n");
scanf("%f",&kaku);
printf("出力する区域(秒)をスペースで区切り入力してください\n");
scanf("%d%d",from,to);
r=kaku/180*pi;
for(second=from;second<=to;++second){
/*時間の表示*/
printf("%d秒",second);
/*x軸の速度*/
vx=v0*cos(r)+0*second;
printf("x軸速度:%4.0f",vx);
/*y軸の速度*/
vy=v0*sin(r)+g*second;
printf("y軸速度:%4.0f ",vy);
/*x軸の距離*/
xx=v0*cos(r)*second;
printf("x軸距離:%4.0f",xx);
/*y軸の距離*/
xy=v0*sin(r)*second;
printf("y軸距離:%4.0f",xy);
}

return (0);
}
0900899NGNG
放物運動のプログラムを作ろうとしているのですが
「出力する区域(秒)をスペースで区切り入力してください」
というメッセージに対し"1 10"とか入力すると
「このプログラムは不正な処理を行いました」
というポップアップがでてきてしまいます
まるなげで恐縮ですがどこが悪いんでしょうか

THROWING のページ違反です。
モジュール : MSVCRT.DLL、アドレス : 017f:7802498c
Registers:
EAX=00000000 CS=017f EIP=7802498c EFLGS=00010202
EBX=00000020 SS=0187 ESP=0073fb88 EBP=0073fd58
ECX=78037c48 DS=0187 ESI=00000064 FS=4d37
EDX=78037c48 ES=0187 EDI=00000001 GS=0000
Bytes at CS:EIP:
89 38 e9 91 f7 ff ff 66 89 38 e9 89 f7 ff ff ff
0901899NGNG
コンパイラはgccを使っています
0902デフォルトの名無しさんNGNG
とりあえず
scanf("%d%d",from,to); =>
scanf("%d%d",&from,&to);


0903899NGNG
>>902
あ!
そんな基本的なところを・・・
0904デフォルトの名無しさんNGNG
>>903
math.hにM_PIって定義されてない?
0905デフォルトの名無しさんNGNG
>>904
3.1415926535
0906-W -WallNGNG
>>899と似たのをたびたび見かけるんで
次スレははじめの方に
★警告レベルは必ずageよう!★
とか書いた方がいいような気がする。

どうよ。
0907デフォルトの名無しさんNGNG
>>906
賛成ですな。他の処理系の警告レベルについても併記したらいいね。
VC++とかbccとか。おれはgccしかしらんから付け加えることは何もない。
0908デフォルトの名無しさんNGNG
printfみたいな可変個の引数の関数は<stdarg.h>を使って実現できますよね。

で、このとき実際、可変個って最大何個渡せるかというのは、
どこで決まるものなんでしょうか?
0909デフォルトの名無しさんNGNG
>>908
スタックの大きさじゃん?
OS次第と思い思われ振り振られ
0910デフォルトの名無しさんNGNG
>>909
OS次第じゃないでしょ
0911デフォルトの名無しさんNGNG
899=907
少なくともお摘むは同レベル。(藁
0912デフォルトの名無しさんNGNG
>>910
ほとんどの場合はOS次第でいいんじゃない?

引数全部レジスタ渡しな呼び出し規約のCPUなら
レジスタの個数に制限されたりするんだろうけど。
0913デフォルトの名無しさんNGNG
32個くらい保証すればいいんじゃなかったっけ。
0914デフォルトの名無しさんNGNG
質問です。
よく使われる変数って、register int としなくてもコンパイラが
最適化するときにレジスタに格納するようしてくれるんですかね?

環境は VC++ 6.0 ですが、ほかのコンパイラの話でもかまいません。
0915デフォルトの名無しさんNGNG
>>914
>register int としなくても
最近はコンパイル時にほとんど無視される指定のようです。
0916デフォルトの名無しさんNGNG
>>915
そうだったんですか…
ありがとうございました。
0917910NGNG
>>912
スタックサイズのことを言っているんだけど・・・
0918デフォルトの名無しさんNGNG
>>917
スタックサイズはプロセッサによって制限がある。
その制限内において、OSによって制限がある。
その制限内において、リンカによって定められる。
そのサイズはリンカオプションで増減できる。
ということではないのか?
0919デフォルトの名無しさんNGNG
>915
正確にはvolatile指定をしない限りコンパイラは極力レジスタを使うようコンパイルします

場合によっては逆に問題が発生するからvolatile指定しなきゃいけないけど
0920デフォルトの名無しさんNGNG
(゚∀゚)どうでもいいんだけど、こないだ
ローカル変数にvolatileつけてるコード見たんだけど
これって何か意味あるのかね?
0921デフォルトの名無しさんNGNG
>>915
コンパイラオプションで指定できるんじゃないの?
(少なくともBorlandはできたはず……デフォルトは「コンパイラに任せる」だったかな。)
0922デフォルトの名無しさんNGNG
ttp://www.h3.dion.ne.jp/~unisoft/progtech.html
ここの「2.1 静的ライブラリ」の説明ってどうよ?
0923デフォルトの名無しさんNGNG
>>920
ローカル変数のメモリ上のならびに依存したコードを書いたなど
まあマトモなコードじゃなかろうが
0924デフォルトの名無しさんNGNG
>>922
論外
> 上の gcc では -I 以降の /usr/loval/include にユーザ・ライブラリが
> 有る事を示している。
ヘッダファイルはライブラリではない

> ncurses.h は /usr/include に保管されている。
> (正確には、/usr/include/ncurses/curses.h にリンク)
正確に言っているつもりが逆に間違っている
0925デフォルトの名無しさんNGNG
setjmp()/longjmp()使ったことない>>923ハケーン。
0926デフォルトの名無しさんNGNG
>>925
それは>>923と同じじゃない?
レジスタ上の変数が破棄される可能性の話だから
0927デフォルトの名無しさんNGNG
>>926
どこが同じに読めるんだ。
> レジスタ上の変数が破棄される可能性の話だから
>>923はそんなこと一言もいってないだろ。
0928926NGNG
まあまあまた〜り
レジスタとメモリどちらに載るかという意味で書いただけなので
無視してもらってかまいません
0929デフォルトの名無しさんNGNG
(゚∀゚)

意味もなくこれ→(゚∀゚)←つけるヤシって嫌い。

(゚∀゚)アヒャ
0930デフォルトの名無しさんNGNG
( ´_ゝ`)フーン
0931デフォルトの名無しさんNGNG
>>929
トレードマーク
0932デフォルトの名無しさんNGNG
(゚∀゚)呼んだか?
0933デフォルトの名無しさんNGNG
(゚∀゚)次スレまだかよ
0934デフォルトの名無しさんNGNG
(#・∀・)カエレ!!
0935デフォルトの名無しさんNGNG
>>929
つまりmodokiってヤシがUZEEEEEEEeeeeeeeeeeeと、いうことですか?

(・∀・)こっちのうほうがすき。
0936modoki ◆zVn/zRzw NGNG
|∀゚)そんなこというなよ
0937デフォルトの名無しさんNGNG
CとC#の違いを教えてください。
#がついてるかついてないかとか言わないでください。
0938デフォルトの名無しさんNGNG
>>937
ちょっと調べればわかることだろ。
0939デフォルトの名無しさんNGNG
>>937
書店に並んでいる C、C# の本を一冊ずつ買ってくる。
両方勉強しる。
(゚д゚)ウマー
0940デフォルトの名無しさんNGNG
>>925
そんなもの使うなよ
0941デフォルトの名無しさんNGNG
>>937
半音高いことです。
0942デフォルトの名無しさんNGNG
>>941
同意。
0943デフォルトの名無しさんNGNG
C → C# → も〜っとC → Cどっか〜ん!
0944デフォルトの名無しさんNGNG
>>943
びっくり!五人目のプログラマ見習い登場!?
0945デフォルトの名無しさんNGNG
おジャ魔女ドレミ ヲタがまぎれててキモいんですが。
0946デフォルトの名無しさんNGNG
じゃあ帰れよ
0947デフォルトの名無しさんNGNG
switch文のcaseのなかにreturn;をいれているんですけど,これっていいんでしょうか?
0948デフォルトの名無しさんNGNG
>947
別に構わない
0949デフォルトの名無しさんNGNG
>>948
ありがとん
0950950ゲッターNGNG
950
0951951ゲッターNGNG
951
0952デフォルトの名無しさんNGNG
新スレ

C言語なら、俺に聞け! <29>
http://pc3.2ch.net/test/read.cgi/tech/1029605182/
0953デフォルトの名無しさんNGNG
ファイル読み込んでバイナリモードで先頭から1bitづつ配列にいれていきたいのですがどうすればいいですか?
0954デフォルトの名無しさんNGNG
for
0955 NGNG
>>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;
}
0956デフォルトの名無しさんNGNG
>>955
単にbitの並びを逆転させた配列を作ってるだけのような気がするが。。
0957955NGNG
>>956
は?逆転なんかしていませんが。
バイナリモードでファイルを読んで、先頭から1ビットずつ配列に入れる
という要求をそのままコードにしただけですが、何か間違っていますか?
0958デフォルトの名無しさんNGNG
ど初心者丸出しの質問で申し訳ないのですが・・・。

マクロ展開後のソースを読む方法を教えて下さい。
(コンパイルオプションだと思うのですが、探し方が悪いためか、
ドキュメントで見つけられず)

使用可能なコンパイラは、

(1) gcc
(2) BCC5.5.1
(3) VC++6.0

の3つです。
(カナリ恥ずかしいですが)よろしくお願い致します。m(_ _;)m
0959デフォルトの名無しさんNGNG
>>958
プリプロセッサ通す。
0960デフォルトの名無しさんNGNG
>>959
ありがとうございます。
できれば、具体的な操作方法(またはヘルプ検索のキーワード)を教えて頂きたいのですが。
0961名無しさん@EmacsNGNG
>>960
man cpp
0962デフォルトの名無しさんNGNG
>>957
読み込んだcをMSBから調べていって、vector[i]のLSBからセット
していくんだから、bitの並びが逆転してるのは間違いない。
それが963の要望とあっているかどうかはわからないけど。
0963デフォルトの名無しさんNGNG
レス数が950を超えています。1000を超えると表示できなくなるよ。
0964デフォルトの名無しさんNGNG
(´・∀・`)ヘー
0965デフォルトの名無しさんNGNG
>>958
http://www.google.co.jp/search?q=%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%80%80%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%80%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5+site%3Amicrosoft.com&hl=ja&ie=UTF-8&oe=UTF-8
0966デフォルトの名無しさんNGNG
>>958
VC++6.0ならcl /?でオプションの一覧を参照できるだろ。
0967955NGNG
>>962
うだうだ言ってないで動かしてみれ。
0968デフォルトの名無しさんNGNG
>>962
つーか963は別に何も求めてないだろ。
0969デフォルトの名無しさんNGNG
新スレ立ってまふ

C言語なら、俺に聞け! <29>
http://pc3.2ch.net/test/read.cgi/tech/1029605182/l50
0970デフォルトの名無しさんNGNG
さて。
0971デフォルトの名無しさんNGNG
そろそろ
0972デフォルトの名無しさんNGNG
うめとくか
0973デフォルトの名無しさんNGNG
scanf("%d %d",from,to);
だろ
0974デフォルトの名無しさんNGNG
埋めなくていいよ。
0975名無しさん@EmacsNGNG
>>973
ネタですか?ねぇ、ネタですか?ネタって言ってくださいYO!!
0976デフォルトの名無しさんNGNG
>>975
int f, t;
int *from = &f, *to = &t;

ってやりゃいいんだ(w
0977デフォルトの名無しさんNGNG
あ、いや、そうなんだけどさぁ…(笑)。
0978デフォルトの名無しさんNGNG
うめうめ
0979デフォルトの名無しさんNGNG
たてたて
0980デフォルトの名無しさんNGNG
標準入力関数のエコーバックって消せますか?
0981デフォルトの名無しさんNGNG
>>980
コンソールの設定変えてくださいな。
0982デフォルトの名無しさんNGNG
>>980
犯罪のにおい
0983デフォルトの名無しさんNGNG
UNIX Cで、分割コンパイルのやり方を教えてください
おながいします

ワケワカンネェヨ ヽ(`Д´)ノ ウワァァァン
0984デフォルトの名無しさんNGNG
>>983
makefileの勉強をしる!
0985デフォルトの名無しさんNGNG
>>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
0986デフォルトの名無しさんNGNG
>984
まずはリンカではないかえ?
0987分割コンパイル(偽)NGNG
cat a.c b.c d.c e.c > tmp.c && cc tmp.c
0988デフォルトの名無しさんNGNG
それはむしろ結合コンパイル。
0989デフォルトの名無しさんNGNG
ネタをネタ(略
0990デフォルトの名無しさんNGNG
埋めろー!!
0991デフォルトの名無しさんNGNG
埋め立てですが何か?
0992デフォルトの名無しさんNGNG
cat a.c b.c d.c e.c | gcc -x c /dev/stdin
0993デフォルトの名無しさんNGNG
>992
バカモノ! こうだる!

--- a.cの中にて ---
#include "b.c"

--- b.cの中にて ---
#include "c.c"



それで、cc a.cとすれば完璧。
0994折衷案NGNG
for c in *.c; do echo "#include \"$c\""; done | gcc -x c /dev/stdin
0995デフォルトの名無しさんNGNG
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
0996デフォルトの名無しさんNGNG
996げっと
0997迅速千ゲッター ◆SLzINsok NGNG
1!
0998迅速千ゲッター ◆SLzINsok NGNG
2!
0999迅速千ゲッター ◆SLzINsok NGNG
3!
1000迅速千ゲッター ◆SLzINsok NGNG
だーーーーーーーーーーーーー!!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。