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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)dNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。

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

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

各種リンク、関連スレは>>2-13あたり

C言語なら俺に聞け! Part 88
http://pc5.2ch.net/test/read.cgi/tech/1091452320/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさんNGNG





























0003デフォルトの名無しさん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/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/

【ライセンスや機能などに問題あり】
Microsoft 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
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0004デフォルトの名無しさんNGNG
はよ次スレ立てろ。
0005デフォルトの名無しさんNGNG
>>4
おいおい
0006デフォルトの名無しさんNGNG
ワラタ
00074NGNG
ちょっと訂正。
s/はよ次スレ立てろ/>>1乙/
0008デフォルトの名無しさんNGNG
>>7
viでつか?
0009デフォルトの名無しさんNGNG
ぱぁる
0010デフォルトの名無しさんNGNG
sed
0011デフォルトの名無しさんNGNG
そっか、viだったら
:%s/はよ次スレ立てろ/>>1乙
か。
0012デフォルトの名無しさんNGNG
"ちょっと"・・ねw
0013デフォルトの名無しさんNGNG
NGワードはなんじゃ?
0014デフォルトの名無しさんNGNG
int a[3][3]={0};
は
int a[3][3]={ {0,0,0}, {0,0,0}, {0,0,0} };
と同じ意味ですか?
0015デフォルトの名無しさんNGNG
定義宣言
0016デフォルトの名無しさんNGNG
>>14
コンパイルして同じだったら同じ。
0017デフォルトの名無しさんNGNG
int a[3][3]={n};
は
int a[3][3]={ {n,n,n}, {n,n,n}, {n,n,n} };
と同じ意味ですか?
001814NGNG
>>16
そういうものですか。どうもありがとうです。
0019デフォルトの名無しさんNGNG
そうなんだ。でも実際に使ったら仲間からキモヲタ扱いされそうだね。
0020985NGNG
無視しないで教えてください。
CreateThread、WaitForSingleObject、WaitForMultipleObjectsとかの関数使うのに
#include <windows.h>以外に何か必要なのでしょうか?
お願いします。
0021デフォルトの名無しさんNGNG
>>20
コンパイラ。
0022デフォルトの名無しさんNGNG
>>http://pc5.2ch.net/test/read.cgi/tech/1091452320/1000
はぁ?
0023前スレの1000NGNG
う、うわぁ!1000をとってしまった。。。
0024デフォルトの名無しさんNGNG
#include <ALL>
とかやったら全てのヘッダファイルが入れれたら世界はもっと平和なのに
0025デフォルトの名無しさんNGNG
>>20
http://pc5.2ch.net/test/read.cgi/tech/1091264964/l50
http://pc5.2ch.net/test/read.cgi/tech/1092524669/l50
このへんできいてね。
0026デフォルトの名無しさんNGNG
>>24
ALLというファイルを作ってそれで全部インクルードしとくとか?w
0027985NGNG
>>21
VC++ 6.0使ってます。
>>20の関数使ってコンパイルは通り実行できるので
#include <windows.h>はいいと思っているのですが、
自分で作ったスレッド関数が実行されないし
windows.hファイルにも>>20の関数が入ってない・・・

>>25
ここって質問スレッドじゃないんですか?
0028デフォルトの名無しさんNGNG
標準ライブラリ程度で実現可能な範囲に限ります
0029985NGNG
>>28
プログラムのレベルじゃなくて棲分けがあるってことですか・・・解りました
0030デフォルトの名無しさんNGNG
どんなヘッダーファイルが必要なのかくらい、マニュアルに書いてありそうなものだけど・・・
0031デフォルトの名無しさんNGNG
>>27
依存関係を満たすためにそうなってるんじゃないかな?

作ったときに実行されない状態でスレッドを作っただけじゃない?
デバッガで覗いてみて、本当に実行されないなら、MSDNよく読んだらいいと思うよ。
0032デフォルトの名無しさんNGNG
>>31
空気読んだほうがいいと思うよ。
0033デフォルトの名無しさんNGNG
>>32
ワロタ
0034デフォルトの名無しさんNGNG
定義宣言
0035985NGNG
>>31
プログラムを下のURLのコードをそのまま実行してみたのですが
main文のprintfしか実行されなかったです。

MSDNしっかり読んでみます。

http://www.kumei.ne.jp/c_lang/intro/no_99.htm
0036デフォルトの名無しさんNGNG
それってCreateThread()が失敗してるんじゃねーの。
ちゃんと定義宣言しないからかな?(w
0037デフォルトの名無しさんNGNG
>>35
マルチスレッド用のCRTリンクしてる?
俺はたまに忘れて悩むこと有るよ。
0038デフォルトの名無しさんNGNG
粘着されると回答するよね
0039デフォルトの名無しさんNGNG
>>29
質問する前に>>1を読めよ
0040前スレ966NGNG
>>970-972
板違いの質問に答えてくれてありがとん。

と、書き込もうと思ったら前スレ埋まってた。

で、こっちに来たらこの空気。
書き込んで良いものかどうか・・・
0041デフォルトの名無しさんNGNG
>>34
そんなに気に入っちゃった?w
0042デフォルトの名無しさんNGNG
C言語だから聞いていいよ。
0043デフォルトの名無しさんNGNG
#define LEN_MAX (255)
のように、数字に( )付けてるのをよく見るんですが、
なんかメリットあるんですか?
0044デフォルトの名無しさんNGNG
>>43
統一感がある。
0045デフォルトの名無しさんNGNG
>>43
何のメリットもないただの ぼけ
004643NGNG
深い意味が無いという事がわかりました
ありがとう
0047デフォルトの名無しさんNGNG
>>43
多分、なんで括弧をつけるべきだと言われているのか分かっていないぼ けなのだろう。
0048デフォルトの名無しさんNGNG
func LEN_MAX;
とか出来るじゃんw
0049デフォルトの名無しさんNGNG
#define "Hello\n"
#define printf print

print str;

Perl風味
005049NGNG
括弧付け忘れたw
#define ("Hello\n")
0051デフォルトの名無しさんNGNG
#define printf print
なにこれ?

#define ("Hello\n")
なにこれ?



0052デフォルトの名無しさんNGNG
>>51
くだらないことを書いて頭が混乱した。夜風に当たってくる。
0053デフォルトの名無しさんNGNG
コンソールプログラムで、キー入力があったときに
ループから抜けるようにしたいのですが、どうやったら可能でしょうか?

>#include <stdio.h>
>int main()
>{
> int c;
> c = getchar();
> while(c == EOF){
>  function1();
>  c = getchar();
> }
> function2();
> return 0;
>}
0054デフォルトの名無しさんNGNG
>>52
ザメハ
0055デフォルトの名無しさんNGNG
>>53
このスレでは回答不能
環境依存スレで聞け
0056デフォルトの名無しさんNGNG
return(0);
return 0;

↑どっちでもいいのでしょうか?
0057デフォルトの名無しさんNGNG
>>56
ふつうは括弧無し
005856NGNG
>>57
ども!
005953NGNG
>55
ありがとうございます
標準のCではできないんですか
環境依存スレで聞いて来ます。。。
0060デフォルトの名無しさんNGNG
> s[sizeof(s)] には何があるん?

GNU's not Unix.
0061デフォルトの名無しさんNGNG
括弧つけるにしても空白はあけろ
0062デフォルトの名無しさんNGNG
>>43 に便乗してお聞きしたいのですが
#define EOF (-1) みたいに
マイナスのときはカッコで括るのはなぜですか?
カッコ無しで破綻するケースが思いつかないのですが。
0063デフォルトの名無しさんNGNG
>>62
1-EOFとか。
俺の使っている処理系だと置換する際に両側に空白を入れるからエラーにならないけど。
0064デフォルトの名無しさんNGNG
両側じゃなかった。前にだ。
006562NGNG
なるほど、有難うございました。
0066デフォルトの名無しさんNGNG
(-1) * 2 --> 1
-1 * 2 --> -1
0067デフォルトの名無しさんNGNG
2と-2だろうが
0068デフォルトの名無しさんNGNG
たしかに、空白はいってもだめだね。
0069デフォルトの名無しさんNGNG
あと括弧をつけないと
1 EOF; こう書いてもエラーにならないね。
0070デフォルトの名無しさんNGNG
それはつけた場合もおなじだろ?
0071デフォルトの名無しさんNGNG
>>62
問題が無いことをいちいち検証したくないから。
0072デフォルトの名無しさんNGNG
>>70
>>66へのレス?
0073デフォルトの名無しさんNGNG
69へです
0074デフォルトの名無しさんNGNG
>>73
1 (-1);と1 -1;では違う。
0075デフォルトの名無しさんNGNG
EOF * 2 はいくつになるべきか!?
0076デフォルトの名無しさんNGNG
>>75
EOFって中の数字きまってたっけ?
0077デフォルトの名無しさんNGNG
>>76
どの文字コードともかぶらない負の整数と決まっている
0078デフォルトの名無しさんNGNG
いえ、数値はどうでもいいの > 76
0079デフォルトの名無しさんNGNG
数値はどうでもいいが、いくつになるべきかって???意味不明だ
0080デフォルトの名無しさんNGNG
いえ、数値はどうでもいいの > 76

a = EOF * 2; して

if (a == EOF / 2)はどっちになるか?
0081デフォルトの名無しさんNGNG
EOFをかけたり割ったりする奴はクビ。
0082デフォルトの名無しさんNGNG
えー しないのー
文字コードをわったりかけたりずらしたりするのって楽しいじゃん。
でもEOFだけうまくいかないのー
0083デフォルトの名無しさんNGNG
メソポタミアから、南インドを通って南から来たひとが
一番最初にいたひとたちね > 日本人
0084デフォルトの名無しさんNGNG
チグリス川とユーフラテス側にかこまれたあたりにいたころから、
7月15日は先祖をおむかえする日。

なので、日にちずれてたら無意味。
お墓まで先祖を迎えに行っても待ち合わせできないじゃん!

そんなわけてあと2週間です。ことしも気合いをいれてお盆をむかえましょう!

ご先祖様のいらっしゃる「あの世」が太陰暦つかっているかぎり、おうちに
かえってこれる日は7月13〜15と決まってるわけなので、現世の暦がどう
かわろうと、ずらすわけにはいかない。
0085癒 ◆xTtI333vNE NGNG
>>84
チグリス川とユーフラテス川ってこのスレと何の関係があるんだ?
0086デフォルトの名無しさんNGNG
そんなこともわからない ぼけ はもういちど小学校から出直して来い
0087癒 ◆xTtI333vNE NGNG
>>86
なら説明してくれ
マジでわからんのだ
0088デフォルトの名無しさんNGNG
なんの関係もない。が答え
0089癒 ◆xTtI333vNE NGNG
>>88に
Human* Kanojo = new Human[SUKINADAKE];
を進呈
0090C勉強中NGNG
以下のプログラムを作成したのですが、c,r,t以外を入力するとなぜか「c, r, t のいずれかの文字を入力してください : 」が2回出力されてしまいます。なぜでしょうか。。

/* 円、長方形、三角形の面積を計算するプログラム */

#include <stdio.h>

int main(void)
{
double radius, length, width, base, height, area;
char ch;

printf("面積を計算します。\n円なら c を、長方形なら r を、三角形なら t を入力してください : ");
ch = getchar();

for(area=-1; area<=0; area--)
{
if(ch=='c')
{
printf("円の面積を計算します。半径を入力してください : ");
scanf("%lf", &radius);

area = radius * radius * 3.1415926538;

printf("面積は %f です\n", area);
}
else if(ch=='r')
{
printf("長方形の面積を計算します。縦の長さを入力してください : ");
scanf("%lf", &length);

printf("横の長さを入力してください : ");
scanf("%lf", &width);
0091C勉強中NGNG

area = length * width;

printf("面積は %f です\n", area);
}
else if(ch=='t')
{
printf("三角形の面積を計算します。底辺を入力してください : ");
scanf("%lf", &base);

printf("高さを入力してください : ");
scanf("%lf", &height);

area = (base * height) / 2;

printf("面積は %f です\n", area);
}
else
{
printf("c, r, t のいずれかの文字を入力してください : ");
ch = getchar();
}
}

return 0;

}
0092デフォルトの名無しさんNGNG
>>90-91
よく読んでいないが、Enterとかで入力される改行文字もc,r,t以外の文字だから。
0093C勉強中NGNG
>>92
なるほど、、ありがとうございます。getche();を利用したら大丈夫になりました。
ただ、もしそのままgetchar();を利用する場合はどこを修正すれば良いでしょうか。
0094デフォルトの名無しさんNGNG
>>93
ch = getchar();
getchar();
0095デフォルトの名無しさんNGNG
>>93
あんたのあたま
0096C勉強中NGNG
ありがとうございます、確かにできました。
ただその考えだとgetchar();を利用するときch==c\nとしなければならないのかな、
と思ったのですが実際にはそうではありません。なぜそうなるのでしょうか?
0097デフォルトの名無しさんNGNG
1文字づつしか処理出来ないからでは?
0098C勉強中NGNG
なるほど、納得できました。ありがとうございますm(_ _)m
0099デフォルトの名無しさんNGNG
>>96
仮に、ch==c\nとするとして、実際は、
ch == 'c\n' と書くことは出来ないから、
ch == "c\n" と書こうとしてもこれはポインタとの比較になって意味ないし、
あえて書くなら、
ch = getchar();
ch |= getchar() << 8;
ch == 'c' | ('\n' << 8)
だが、そんな面倒なことはしない。
(場合によってはこう書くこともあるから覚えておくといい)
0100デフォルトの名無しさんNGNG
一行読んで先頭文字を調べるのが普通か
0101デフォルトの名無しさんNGNG
if ( isspace( ch = getchar() ) )
{
  ch = getchar();
}
0102デフォルトの名無しさんNGNG
J( 'ー,`)し ヒロシへ げんきですか。いまめーるしてます

(`Д)   うるさい死ね メールすんな殺すぞ

J( 'ー,`)し ごめんね。おかあさんはじめてめーるしたから、ごめんね

(`Д)   うるさいくたばれ、メールすんな

J( 'ー,`)し お金ふりこんでおきました。たいせつにつかってね 食事はしていますか?

(`Д)   死ねくそババァ

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            o
__        ゚ 
 森 |
 家 |
 墓 |  ∴  ('A`)カーチャン.ゴメンヨ.........
──┐ ∀  << )
0103デフォルトの名無しさんNGNG
夏ですね
0104デフォルトの名無しさんNGNG
> なぜでしょうか。。

scanf使っているから
0105デフォルトの名無しさんNGNG
isspaceが副作用があるマクロだったらだめ
0106デフォルトの名無しさんNGNG
884 名前:名無しさん@お腹いっぱい。:sage 投稿日:04/08/16 00:04 ID:tEoFxIS9
>>883
荒らすな、ボケ!

896 名前:名無しさん@お腹いっぱい。:sage 投稿日:04/08/16 00:22 ID:tEoFxIS9
眠れないシトはどこにいるの〜?

898 名前:名無しさん@お腹いっぱい。:sage 投稿日:04/08/16 00:24 ID:tEoFxIS9
来年の日本人メジャーリーガークビ予想

長谷川、野茂、カズオ、田口

903 名前: ◆tWSgrFp6o6 投稿日:04/08/16 00:34 ID:tEoFxIS9
http://sports7.2ch.net/test/read.cgi/mlb/1092583953/
新スレできたお〜(^^)
あはは〜
0107デフォルトの名無しさんNGNG
union {
short i;
char ch[2];
} uni;

main(){
uni.i = 0xffff;
printf("%X \n%X %X\n", uni.i, uni.ch[0], uni.ch[1]);
}

という簡単なプログラムなんだけど、実行すると
FFFFFFFF
FFFFFFFF FFFFFFFF
と表示されるます。代入してるのは16進法のFFFFなのになぜですか?
環境はLinux上でGCCです。
0108デフォルトの名無しさんNGNG
不合格長
0109デフォルトの名無しさんNGNG
>>107
printfにわたる時にintになるんじゃないか?
0110デフォルトの名無しさんNGNG
unsignedつけたら解決するよ
0111デフォルトの名無しさんNGNG
いちばんやってはいけないunionの使い方の典型です。
0112デフォルトの名無しさんNGNG
>>111
おまえは未来永劫絶対に union 使うな
0113デフォルトの名無しさんNGNG
>>111
説明してもらおうか?どんな意図でやってはいけないと言うのか。
0114デフォルトの名無しさんNGNG
short型に0xffffを代入すると
これはつまり-1なわけで
これをint型にキャストすると-1
それをまた16進表記に戻すと
0xffffffff
完
0115107NGNG
>>110
あっ、FFFFってやったら符号フラグたっちゃいますもんね。ただ今度は
FFFF
FFFFFFFF FFFFFFFF
になりました。

>>109
整数拡張ってやつですか
実行結果の二行目がFFFFFFFFになるのはこのためですね。
ただ代入する値(例えば1C18)によっては期待どおりの表示になったりします。これは??
0116デフォルトの名無しさんNGNG
>>115
だから負の符号が一緒に拡張されてるんだよ
1C 18 は正
unsigned charにしたか?
0117デフォルトの名無しさんNGNG
%Xは符号無し
0118107NGNG
すみません、unsignedをintにだけつけてました(汗)
charにもつけたら期待どおりの表示になりました。

>>114
詳しく原因の説明ありがとうございます。頭がすっきりします。
ありがとうございました>>ALL
0119デフォルトの名無しさんNGNG
112はださいunionの使い方しかしらなかったので、
いわれてあせっているの図。
0120デフォルトの名無しさんNGNG
漠然とした質問でスミマセン。
GlobalAlloc関数で確保したメモリ領域に
バイナリーファイルを読み込みたいのですが
どのようにやるのでしょうか?
0121デフォルトの名無しさんNGNG
>>120
GlobalAllocは標準Cには含まれません
適切なスレで訊いてください
0122デフォルトの名無しさんNGNG
>>120
fopen, fread, fclose
0123デフォルトの名無しさんNGNG
ゲームの専門学校に進むことが決まって、独学でC言語を勉強し始めました
そこでエディタやコンパイラ、デバッガなどのツールが一つになったプログラムがほしいのですが
今日電気屋に行ったら8000円ほどしました
学生を対象にした割安の価格で販売しているメーカーも在るそうですが、いくらくらいするのでしょうか?
またどんなものを買えばいいでしょうか?
0124デフォルトの名無しさんNGNG
_ultoa関数などの標準関数って"_"つけないでも使えますよね?
"_"の意味ってなんなんでしょうか?
0125デフォルトの名無しさんNGNG
>>123
激安で買えるVisual Stdio.NET theSpoke Disc.7
http://pc5.2ch.net/test/read.cgi/tech/1092312361/
0126デフォルトの名無しさんNGNG
独自の関数だから気を付けろって所じゃないか
0127デフォルトの名無しさんNGNG
>>124
普通、ヘッダファイルを見れば違いが簡潔に書いてある。
0128デフォルトの名無しさんNGNG
>>124
>_ultoa関数などの標準関数って

標準関数じゃないだろうが!
0129デフォルトの名無しさんNGNG
>>125
ありがとうございます
0130デフォルトの名無しさんNGNG
scansetで'['と']'はどうやって指定するんですか?
0131デフォルトの名無しさんNGNG
ありゃ、、C ランタイム ライブラリって標準関数だと思ってました。
てことは標準関数ってどんな関数のことをさすんですか?
0132デフォルトの名無しさんNGNG
適当に計算した値が、
整数なのか少数なのかを調べるにはどうすればいいですか?
0133デフォルトの名無しさんNGNG
>132
なんだか深遠な課題が出てきたな。
0134デフォルトの名無しさんNGNG
>>132
正確には無理。
整数と整数を割る時にあまりが無ければ整数とは言えるが。
0135デフォルトの名無しさんNGNG
>>134
ありがとです
0136デフォルトの名無しさんNGNG
>>132
floorとの結果と比べてみれば?
0137デフォルトの名無しさんNGNG
"=="で比較しても、有意義な結果は望めないかも。
0138デフォルトの名無しさんNGNG
整数一覧表に載っていれば整数。
実数一覧表に載っていなければ虚数。

最近の学生さんは見たこともないかな。<一覧表
0139デフォルトの名無しさんNGNG
確かに最近見かけないね。
そろそろ64bit版を買わないと。

ロシアでポケット版が出版されてるそうだけど、手に入るかな・・・
0140デフォルトの名無しさんNGNG
ポケット版は目が疲れるからやめとけ.
俺は偶数版を薦める。大きさ・重さが半分だ。
0141デフォルトの名無しさんNGNG
携帯には素数版だろ
0142デフォルトの名無しさんNGNG
>>130
'['は普通に指定できます。
']'はスキャンセットの先頭に限り指定できます。
0143デフォルトの名無しさんNGNG
漏れの整数表には誤植が有る。鬱だ。
0144デフォルトの名無しさんNGNG
ジジイはサッサとシンでくださいねっ☆
0145デフォルトの名無しさんNGNG
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 ] 76 77 78 79 80 ←誤植
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
0146デフォルトの名無しさんNGNG
CRCの無い整数表は使い物にならないと思う。
0147デフォルトの名無しさんNGNG
2進の整数表があるそうだが、あんなの買う香具師居るのかw
6畳間にゃ入りきらんw
0148デフォルトの名無しさんNGNG
CRC表にCRCが付いてたが一致しなかった。どうなってるんだ・・・
0149デフォルトの名無しさんNGNG
64bit版はDVD17枚組だからな。
バラ売りしてくれんかな・・
0150デフォルトの名無しさんNGNG
実数一覧表のサンプルきぼん。
0151デフォルトの名無しさんNGNG
>150
多倍長実数ポインタでアクセスするらしい。
0x0000000000000000000000000000000000000000000000000000000000000000
0x0000000000000000000000000000000000000000000000000000000000000001
0x0000000000000000000000000000000000000000000000000000000000000002
0x0000000000000000000000000000000000000000000000000000000000000003
0x0000000000000000000000000000000000000000000000000000000000000004
0x0000000000000000000000000000000000000000000000000000000000000005
0x0000000000000000000000000000000000000000000000000000000000000006
0x0000000000000000000000000000000000000000000000000000000000000007
0x0000000000000000000000000000000000000000000000000000000000000008
0x0000000000000000000000000000000000000000000000000000000000000009
0x000000000000000000000000000000000000000000000000000000000000000a
0x000000000000000000000000000000000000000000000000000000000000000b
0x000000000000000000000000000000000000000000000000000000000000000c
0x000000000000000000000000000000000000000000000000000000000000000d
0x000000000000000000000000000000000000000000000000000000000000000e
0x000000000000000000000000000000000000000000000000000000000000000f
0x0000000000000000000000000000000000000000000000000000000000000010
0x0000000000000000000000000000000000000000000000000000000000000011
0x0000000000000000000000000000000000000000000000000000000000000012
0x0000000000000000000000000000000000000000000000000000000000000013
0x0000000000000000000000000000000000000000000000000000000000000014
0x0000000000000000000000000000000000000000000000000000000000000015
0x0000000000000000000000000000000000000000000000000000000000000016
0x0000000000000000000000000000000000000000000000000000000000000017
0x0000000000000000000000000000000000000000000000000000000000000018
0x0000000000000000000000000000000000000000000000000000000000000019
著作権があるらしいので、このくらいでやめとく。
0152デフォルトの名無しさんNGNG
>>142
ありがとう
0153デフォルトの名無しさんNGNG
夏だなぁ。
0154デフォルトの名無しさんNGNG
礼など要らぬ。精進されよ。

夏休みはどこへ出かけても人ごみでいっぱいだから、
整数表を読破するのもいいかもしれん。
0155デフォルトの名無しさんNGNG
あれはストーリーが単純すぎるんだよ
0156デフォルトの名無しさんNGNG
1から100までの素数を表示するプログラムをおしえてください
0157デフォルトの名無しさんNGNG
#include <stdio.h>
int main(){
puts("1から100までの素数");
return 0;
}
0158デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void) {
puts( "2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97" );
return 0;
}
0159デフォルトの名無しさんNGNG
1から100までの素数を計算して表示する
プログラムを教えてください。
0160デフォルトの名無しさんNGNG
#include <stdio.h>
int main(){
printf("1から%dまでの素数", 1+ 99);
return 0;
}
0161デフォルトの名無しさんNGNG
高2の夏休みだった。
食卓の上に母の読みかけの整数表があった。
なにげなく開いて見た。私はぶったまげた。
31415926535897932384626433832795028841971
その時は恐ろしくて本を閉じてしまった。

数ヶ月すると恐怖も和らぎ、母にあの事を話してみた。
「そんなことあるはずないじゃないの。大人をからかうもんじゃないよ。」
「うそじゃねーよ。真ん中くらいのページだったぜ。」
あの時の恐怖をすっかり忘れ、私は整数表のページを必死にめくった。

結局、再び見つけることはできなかった。
あれは断じて夢やまぼろしではなかったと、今も信じている。
0162デフォルトの名無しさんNGNG
> エディタやコンパイラ、デバッガなどのツールが一つになったプログラムがほしいので

するなよ > 1つに

ぼけ
0163デフォルトの名無しさんNGNG
整数表てなに?
0164デフォルトの名無しさんNGNG
>>163
整数が載っている表です
0165デフォルトの名無しさんNGNG
>>164
んなこと分かっとるわこのモーロクジジイが!!!!!!!!


...どういう目的で利用するものなのですか?
0166デフォルトの名無しさんNGNG
整数を調べるために使います。
0167デフォルトの名無しさんNGNG
>>165
整数表を見たい時に見るものです
0168デフォルトの名無しさんNGNG
整数表を見たいときの人の心理はどのようなものですか?
0169デフォルトの名無しさんNGNG

「ひろゆき」から「今晩のおかず」までを手広くカバーする巨大掲示板群
             『3ちゃんねる』へようこそ!

                   ▲▲
                  ( ・3・) <見に来てね
                  (|.   .|)   
                   |. ω |       
                   ∪ ∪
           3ちゃんねるイメージキャラクター
              「3チコ (さんちこ)」
          
              http://www.3ch.jp/   
0170デフォルトの名無しさんNGNG
結局ジジイの思い出話にしかならないシロモノなのですか? >>整数表

僕達ヤング世代にも分かるように教えておくれよぅ
0171デフォルトの名無しさんNGNG
たとえば、168という数があったとします。
我々は日常、これは整数であるということに疑念を抱かずに生活しています。

しかし、本当にそうなんでしょうか?
こうした事に疑問を持って、調査することこそが、「科学する心」なのです。
整数表は、そんな人の強い味方になります。
0172デフォルトの名無しさんNGNG
俺、実数表持ってるよ。
0173デフォルトの名無しさんNGNG
どういう理論で168が整数でないと考えるのかが分かりません。
0174デフォルトの名無しさんNGNG
素数のプログラムおせーてください。

例えばnだったら、2から1つずつn-1まで
割っていって割り切れたらそれは除外。
割れずに最後までいったら素数、って考えですが
形にできないです。
0175デフォルトの名無しさんNGNG
>>174
エラトステネスの篩

とかでググッてみなさい
0176デフォルトの名無しさんNGNG
インド人が発見するまで、整数表に「ゼロ」は有りませんでした。
「168が整数である」と考えるのは、「ゼロ」は整数で無いと考えるのに似ています。
現在における真理が、将来も真理であり続ける保証は無いのです。
0177デフォルトの名無しさんNGNG
> てことは標準関数ってどんな関数のことをさすんですか?

標準の関数をさす
0178デフォルトの名無しさんNGNG
どういう理論で168が整数でないと考えるのかが分かりません。
0179デフォルトの名無しさんNGNG
>175
見つかりました。ありが�d
http://www.google.co.jp/search?q=cache:rA0hnBHumb0J:www.tsg.ne.jp/text/2004/c/1.html+%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9&hl=ja
0180デフォルトの名無しさんNGNG
どういう理論で168が整数でないと考えるのかが分かりません。と考えるのかが分かりません。
0181デフォルトの名無しさんNGNG
> 夏休みはどこへ出かけても人ごみでいっぱいだから、

出かけてみましたが、ひとごみはたいがいのところで1つだけでしたよ
0182デフォルトの名無しさんNGNG
宣言の仕方で
unsigned char* g[10]; とかくのか
unsigned char *g[10]; とかくのか
どっちのほうが正しい書き方なのか教えてください
0183デフォルトの名無しさんNGNG
>>182
どっちも正しい
0184デフォルトの名無しさんNGNG
>>182
別にどちらも間違ってはいない。
unsigned char* g[10], h[10];
とやると嵌るから理由をしらなければ後者にしとけ。
0185デフォルトの名無しさんNGNG
unsigned
char * g[
1
0
];


これでもOK
0186デフォルトの名無しさんNGNG
>>182
上は間違い。
違法ではないが倫理的に問題がある。
0187デフォルトの名無しさんNGNG
上の書き方はださいのでだめ。
一時期stroustrupが流行らせようとしたが、だめだった。
いまどきそんな書き方しているやつはぼけだけなので
まねすると笑われるよ。
0188デフォルトの名無しさんNGNG
>>176
なんかムリヤリな気がする...

「168が整数でない」と考えるのは、「ゼロは整数でない」と考えるのに似ています。

の方が正しいと思うが....
インド人が発見するまで「ゼロ」という概念が無かっただけで
「ゼロ」は整数で無い、なんて考えてた分けじゃないでしょ
0189デフォルトの名無しさんNGNG
> 1
> 0

ここでエラーだろ ぼけ
0190デフォルトの名無しさんNGNG
unsined char * g[10];
こう書いてるシト居ます?
0191デフォルトの名無しさんNGNG
ネパール人が発見するまで、1は整数じゃなかった。
0192デフォルトの名無しさんNGNG
整数表見れば一発でわかるじゃん
0193デフォルトの名無しさんNGNG
>>190
そいつははっきりいって文法違反だ!
規格票みろよ! ぼけ
たいがいのコンパイラーで syntax errorだぞ。
エラーがでないコンパイラーはまずないだろう。
0194デフォルトの名無しさんNGNG
なんか、「規格票」ってダサいよねw
0195デフォルトの名無しさんNGNG
規格票もしらんのかよぼけ
0196デフォルトの名無しさんNGNG
>>193
Σ(゚д゚lll)エッ マジ....!?
初めて知ったヨ
規格票てなに?
うちの GCC はウンともスンとも言わないけど???
0197デフォルトの名無しさんNGNG
三割は小数?
0198デフォルトの名無しさんNGNG
>>196
gcc -W -Wall -c a.cpp
a.cpp:1: error: syntax error before `char'
0199デフォルトの名無しさんNGNG
cpp?
0200デフォルトの名無しさんNGNG
>>198
ゴメン、タイポ ノ コト ダタノネ......(´・ω・`)
0201デフォルトの名無しさんNGNG
>>199
スマソ、Cなんてもう10年くらい使ってないもんで。
0202デフォルトの名無しさんNGNG
gcc -w -wall -c 168
168 is an integer.
0203デフォルトの名無しさんNGNG
整数だ!
0204デフォルトの名無しさんNGNG
>>201
スレタイ100回読んでヘソ噛んで氏ね
0205デフォルトの名無しさんNGNG
168が整数かどうかも判別不能になったジジイの居るスレはここですか?
0206デフォルトの名無しさんNGNG
整数なんて定義されるもので判定するもんじゃないだろぼけ
0207デフォルトの名無しさんNGNG
>>206
「定義」に従って「判定」しますが何か?
0208デフォルトの名無しさんNGNG
>>206
int IsInteger(double x)
{
    return (int)x == x;
}
0209デフォルトの名無しさんNGNG
>>208
おれの根拠も確証も無い自信から来るカンだと、それは正しく判断できないんじゃないか?
0210デフォルトの名無しさんNGNG
doubleにぶち込んだらそれは実数だ
0211デフォルトの名無しさんNGNG
>>209
そうだね、intの範囲を越えた場合は未定義。
ただし、intの範囲内であれば正しく動く。doubleの仮数部がintのビット数以上あれば。
もちろんIEEE754準拠してれば。
0212デフォルトの名無しさんNGNG
#include <stdio.h>
int isInteger( double x )
{
return (int)x == x;
}
int main(void)
{
while( 1 ) {
double d;
if ( scanf( "%lf", &d ) < 0 ) break;
printf( "%f: %s\n", d, isInteger(d)?"TRUE":"FALSE" );
}
return 0;
}
0213デフォルトの名無しさんNGNG
> おれの根拠も確証も無い

じゃあだまってろよ ぼけ
0214デフォルトの名無しさんNGNG
>>213
だまっていたら問題無いとして使うやつがいるだろ?
0215デフォルトの名無しさんNGNG
てか >>210 が真実
0216デフォルトの名無しさんNGNG
NaN
0217デフォルトの名無しさんNGNG
何
0218デフォルトの名無しさんNGNG
窒化ナトリウム
0219デフォルトの名無しさんNGNG
窪塚化ナトリウム
0220デフォルトの名無しさんNGNG

1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ・・・

は、整数になるか?
0221デフォルトの名無しさんNGNG
なります。
0222デフォルトの名無しさんNGNG
1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + √2
0223デフォルトの名無しさんNGNG
ほら、ずっと整数だし

1 = 1
1 + 1/2 = 1
1 + 1/2 + 1/3 = 1
1 + 1/2 + 1/3 + 1/4 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 + 1/11 = 1
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 + 1/11 + 1/12 = 1
0224デフォルトの名無しさんNGNG
どういうボケなのか理解できん
0225デフォルトの名無しさんNGNG
main()
{
  int  i, sum;
  char buf[2048] = "";

  sum = 0;
  for (i = 1; i < 100; i++) {
    sum += 1 / i;
    if (i == 1)
      sprintf(buf, "1");
    else
      sprintf(buf, "%s + 1/%d", buf, i);
    printf("%s = %d\n", buf, sum);
  }
}
0226デフォルトの名無しさんNGNG
> どういうボケなのか理解できん

どこがボケなの?
すれたいに忠実なだけでは?
0227デフォルトの名無しさんNGNG
> だまっていたら問題無いとして使うやつがいるだろ?

実際問題ないだろ?
0228デフォルトの名無しさんNGNG
>>225
>>main()
( ゚д゚)ポカーン
0229デフォルトの名無しさんNGNG
>>227
お前の目は節穴か
ビー球と入れ替えておけ
0230デフォルトの名無しさんNGNG
>>228

何ももんだいないだろ?
0231デフォルトの名無しさんNGNG
> 節穴か ビー球と入れ替えておけ

穴をびーだまといれかえられんだろ? ぼけ
穴にいれるならできるが
0232デフォルトの名無しさんNGNG
>>228
確かに、中途半端に旧いね
0233デフォルトの名無しさんNGNG
No Problem 完全
0234デフォルトの名無しさんNGNG
NP完全 == NoriPは完全
0235デフォルトの名無しさんNGNG
リン化窒素
0236デフォルトの名無しさんNGNG
そんなものはSiH4
0237デフォルトの名無しさんNGNG
ツェナーダイオード?
0238デフォルトの名無しさんNGNG
NegaPosi
0239デフォルトの名無しさんNGNG
そんなものはSiH4
0240デフォルトの名無しさんNGNG
で、実際整数だろ?
0241デフォルトの名無しさんNGNG
>>230
改行を飛ばすな ぼけ
0242デフォルトの名無しさんNGNG
>>241=俺
レスアンカーをミスるな ぼけ
0243デフォルトの名無しさんNGNG
  ∧ ∧     ┌─────────
  ( ´ー`)   < SiH4
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪
0244デフォルトの名無しさんNGNG
>>240 ちゃいます
0245デフォルトの名無しさんNGNG
俺は酒乱
0246デフォルトの名無しさんNGNG
∞
Σ(1/2^n) == ?
n=0
0247デフォルトの名無しさんNGNG
>>246
2
0248デフォルトの名無しさんNGNG
じゃなかった
1
0249デフォルトの名無しさんNGNG
/* >>246の計算 */
#include<stdio.h>
float r(float);
int i=0;
main(){
float j;
j=1.0/2;
printf("answer %f\n",r(j));
return 0;
}
float r(float j){
if(i==20){return j;}
else{
printf("%f\n",j);i++;
return j+r(j*1.0/2);
}
}
0250デフォルトの名無しさんNGNG
>>249
(あくまでも数学的にだが) 有限回の足し合わせでは絶対 1 (>>246 の答えは 2 だが)
にはならない
0251デフォルトの名無しさんNGNG
>>250
知ってますよ。
プログラムだと1になりますね。
0252デフォルトの名無しさんNGNG
>>251 なりまへん
0253デフォルトの名無しさんNGNG
>>252
?
1.000000になったけど。
0254デフォルトの名無しさんNGNG
>>252
150回位で1になったよ。
0255デフォルトの名無しさんNGNG
>>253
見た目にダマされたらあきまへんで
((fload)1.0) と比較してみぃ
0256デフォルトの名無しさんNGNG
>>254 float やとけっこう早いんかな?double だとどう?
0257デフォルトの名無しさんNGNG
fload って何じゃ
0258デフォルトの名無しさんNGNG
typdef float fload;
0259デフォルトの名無しさんNGNG
>>256
doubleだと1000回位。
とりあえず、doubleに1を代入したのと同じビットパターンになる。
0260デフォルトの名無しさんNGNG
?
floatのところをdoubleに変えても表示は一緒なんですが。
0261デフォルトの名無しさんNGNG
だから表示は関係ないと言うとるのに
ってわし釣られとるんか
0262デフォルトの名無しさんNGNG
あ、本当だ。
doubleにしたら60回くらいで1になった。
けど1000回位になってないなんでかな
0263デフォルトの名無しさんNGNG
関数とライブラリの違いがわかりません。どう違うんですか?
0264デフォルトの名無しさんNGNG
表示精度の問題だろ。
結果から1.0を引いた上で、指数形式で表示してみ。



俺は試してないけどな。
0265デフォルトの名無しさんNGNG
>>263
(広い意味で言えば)関数群がライブラリだ
0266デフォルトの名無しさんNGNG
>>264
なるほどです。
0になってなかったです。
0267デフォルトの名無しさんNGNG
関数=本
ライブラリ=図書館
0268デフォルトの名無しさんNGNG
>>265 >>267
すっごくよくわかりました。ありがとうございます。
0269デフォルトの名無しさんNGNG
下のプログラムについてですが、
d += 0.5;
だと途中で整数になるのに、
d += 0.1;
だと動作がおかしいんです。

#include <stdio.h>

void isInteger(double d)
{
  if(d == (int)d){
    printf("I: %20.15f\n", d);
  }else{
    printf("D: %20.15f\n", d);
  }
}

int main(int ac, char **av)
{
  int i;
  double d = 0.0;

  for(i = 0; i < 50; i++){
    d += 0.1;
    isInteger(d);
  }

  return 0;
}
0270デフォルトの名無しさんNGNG
>>269
釣りか?
2進数では 0.1 を有限桁で正確に表わせれないんだよ
10進数でいうところの 1/3 が 0.33333..... と有限桁では表わせれないのと一緒
0271デフォルトの名無しさんNGNG
>>270
それは知ってるんですが、このスレの上の方の話題を見てると
整数の判断をするにはどうすれば良いのかなって気になったもので・・・
0272デフォルトの名無しさんNGNG
>>271
だから、0.1 を 10 回足しても整数にならない、という話ではなくって?
何が問題なの?
0273デフォルトの名無しさんNGNG
0.1を10回足したら1だから整数ですよね?
0274デフォルトの名無しさんNGNG
>>273
だーかーらー
計算機内では2進数だから 0.1 と微妙にずれてるのっ!!!
0275デフォルトの名無しさんNGNG
>>274
それは知ってます
0276デフォルトの名無しさんNGNG
じゃあなにがもんだいなの
0277デフォルトの名無しさんNGNG
>>276
あなたの性格です。
0278デフォルトの名無しさんNGNG
むきーっ!!!!!!!!!!!!!!
0279デフォルトの名無しさんNGNG
>>278 は >>269 ではありません。
煽りはやめてください。
0280デフォルトの名無しさんNGNG
>>269
>>132 の答えは >>134
後の話は雑談または別の話題。
0281デフォルトの名無しさんNGNG
>>275
s/ます/るつもりです/
0282デフォルトの名無しさんNGNG
APIを直接使わずにMFCだけでAPIでできることのすべてを代用することができますか?
0283デフォルトの名無しさんNGNG
>>282
MFCスレへGO!
0284282NGNG
>>283
うぉ、、、わずか5秒での即レスありがとうございます
MFCのスレ探して聞いてみます
0285デフォルトの名無しさんNGNG
環境依存以前にあれはC++だしな
0286デフォルトの名無しさんNGNG
Linux で共有メモリを試してて、共有メモリとか関係ないけど気になる
ところがあるんです。

shmat は、man してみると
void *shmat(略);
失敗した時の返り値は -1
となってます。

返り値はなぜ NULL でなくて -1 なんでしょう?
比較する時にキャストしないと警告がでるし、NULL なら比較の対象がポインター
だとすぐわかると思うんだけど・・。
勘違いしてるんでしょうか?
0287デフォルトの名無しさんNGNG
直前で環境依存どうこう出てるのにコイツは……
0288デフォルトの名無しさんNGNG
gotoを使った高速化手法があると聞いたのですが
具体的にはどういったものなんでしょうか?
0289デフォルトの名無しさんNGNG
>>287
どこが環境依存かすらわかんないんですが・・。
0290デフォルトの名無しさんNGNG
int x, y;
for(x = 0; x < 16; x++) for (y = 0; y < 16; y++) if (x * 16 + y == 20) break;
printf("x = %d, y = %d\n", x, y);
for(x = 0; x < 16; x++) for (y = 0; y < 16; y++) if (x * 16 + y == 20) goto L_NEXT;
L_NEXT:
printf("x = %d, y = %d\n", x, y);
return 0;
0291デフォルトの名無しさんNGNG
>>289
shmatは標準Cなのか?
shmdtとセットで戻り値を揃えたかったとか、正確なところは犬厨にでも訊け。
0292デフォルトの名無しさんNGNG
>>291
納得。
よそいきます。
0293デフォルトの名無しさんNGNG
>>288
んな事ぁ言った人に訊きましょう。
0294デフォルトの名無しさんNGNG
>>288
int main(int ac, char **av)
{
  goto L_KOUSOKU;
  
  /* ここに本体 */
  
L_KOUSOKU:
  return 0;
}
0295デフォルトの名無しさんNGNG
二つの正の整数m,nをキーボードから入力し、mからnまでの和を求めるプログラムを、つくりなさい。
ただし、nがmより小さいときは、nとmを入れ換えてから計算しなさい。

基本的な事だと思いますが、わかりません。どなたか教えてください
0296デフォルトの名無しさんNGNG
>>295
宿題は宿題スレへ
0297デフォルトの名無しさんNGNG
>>295 C言語の問題って気もしないけどな。
if(m > n) {
  tmp = m;
  m = n;
  n = tmp;
}
for( sum = 0; m <= n; sum += m++);

これ以外のところは自分でやってちょ
#これ宿題だったら先生にちゃんとかけって言われるかもw
0298デフォルトの魚釣りさんNGNG
#include <stdio.h>

int main()
{
char s[256];
int r;
/* 入力 */
printf("%dから%dの和を計算し、入力して下さい > ", m, n);
fgets(s, sizeof(s), stdin);
printf("%dから%dの和は、%sです。\n", m, n, s);
return 0;
}

完璧すぎてうっとりするぜ・・・。
10 ^ 256まで計算可能。
0299デフォルトの名無しさんNGNG
不可能だよ。
0300デフォルトの名無しさんNGNG
^255
0301デフォルトの名無しさんNGNG
再帰だ、再帰を使え!
0302デフォルトの名無しさんNGNG
>>299-300
>>298 が言わんとした事を理解してやろうぜ?
10 ^ 256 = 266 だろ?
0303デフォルトの名無しさんNGNG
>>298
どうして動くのか不思議だ
0304デフォルトの名無しさんNGNG
^254
だろ?
0305デフォルトの魚釣りさんNGNG
>>301
int func(int n){ return func(n + 1); }
0306釣られてやろうかねえかよ!NGNG
それでは終了条件がありませんよ。
0307デフォルトのダメダメさんNGNG
JとKは隣どうしなわけで...
0308デフォルトの名無しさんNGNG
74107
0309デフォルトの名無しさんNGNG
int X[480][640];
ってやると↓
問題が発生したため、xxx.exe を終了します。 ご不便をおかけして申し訳ありません。
で落ちるのは何故?
0310デフォルトの名無しさんNGNG
 
0311デフォルトの名無しさんNGNG
>>309
satanic
0312デフォルトの名無しさんNGNG
すたっくおーばーh
0313デフォルトの名無しさんNGNG
static int X[480][640];
0314デフォルトの名無しさんNGNG
>>311-313
生兵法なものでスタックとかの概念が良く分かってないみたいです。
勉強してきます。
取りあえずstaticつけると落ちなくはなりましたが
0315デフォルトの名無しさんNGNG
長いのでうpしました→ttp://www5f.biglobe.ne.jp/~hacone/file.c
コンパイルはできるんですが、実行すると
「なんかエラー (fgetc from)」
が表示されます。更に、
if(ferror(from)){
printf("なんかエラー(fgetc from)");
exit(1); }
を
if(!ferror(from)){
printf("なんかエラー(fgetc from)");
exit(1); }
に書き換えても同じです。
if文の評価にかかわらずコードブロックが実行されるみたいです・・・。
0316デフォルトの名無しさんNGNG
>>315
// ファイルを閉じる(切り離し)
が、for 文の繰返し範囲内にあるぴょ.

0317315NGNG
>>316 ありがとうございます〜
ついでにメニューで2を入力しても終了しないバグを改良。
0318デフォルトの名無しさんNGNG
質問なのですが、mallocでメモリに領域を確保して、
freeで開放せずにプログラムを終了したら、その確保した領域は
開放されるのですか?
0319デフォルトの名無しさんNGNG
>>318
処理系による。
0320デフォルトの名無しさんNGNG
処理系とはどういうものですか?
windowsとかのOSや、コンパイラとかのことですか?
0321デフォルトの名無しさんNGNG
>>318
されるよ。その性質を利用した
取って置きのテクニックを教えてあげよう。

void main()
{
 printf("hello, world\n");
 gets(malloc(256)); // 終了待ち
}
0322デフォルトの名無しさんNGNG
>>320
コンパイルから実行まで。
0323デフォルトの名無しさんNGNG
>>321
どうもです。
ところで、下のプログラムのgets(malloc(256));とはどういう処理を
しているのですか?
0324デフォルトの名無しさんNGNG
malloc(256)で確保した領域に入力した文字列を格納させてるんだろ。
0325デフォルトの名無しさんNGNG
なるほど。2つのことを省略して書いてるんですか。
0326デフォルトの名無しさんNGNG
CとC++はどっちを先に覚えたらいいの?
0327デフォルトの名無しさんNGNG
>>326
C#覚えればどっちも不要
0328デフォルトの名無しさんNGNG
>>326
C++
0329デフォルトの名無しさんNGNG
女の子にもてたいならC++
0330デフォルトの名無しさんNGNG
男の人にモテたいならBに戻る
0331デフォルトの名無しさんNGNG
C++を覚えます

どうもでした。
次は、C++のスレに逝きます。

ところで、C#だとどっちもいらないの?
0332デフォルトの名無しさんNGNG
ただ単に互換性が
0333デフォルトの名無しさんNGNG
>>331
C#しかできない人は、会社でいらない存在だから
0334デフォルトの名無しさんNGNG
>>318
漢字ぐらいちゃんと書けよ ぼけ
0335デフォルトの名無しさんNGNG
>>325
いいえ。NULLをgetsに渡すとどうなるかという実験ですよ。
0336デフォルトの名無しさんNGNG
>>321
256文字以上入力されたらどうするの?
0337デフォルトの名無しさんNGNG
どっちみち終了だから無問題
0338デフォルトの名無しさんNGNG
>>336
getsが自動的に領域を拡張してくれる
0339デフォルトの名無しさんNGNG
>>338
ネタですか?
0340デフォルトの名無しさんNGNG
これからC始めようと思ったんだけど
ビジュアルC++かビジュアルC♯買おうか迷ってんだけどどっちがいいの?
将来性とかも考えて
0341デフォルトの名無しさんNGNG
C#だろC/C++なんて21世紀に使うべき言語じゃない。
0342デフォルトの名無しさんNGNG
プログラミングなんてもう止めた方がいいよ。
0343デフォルトの名無しさんNGNG
MSの奴隷C#
0344デフォルトの名無しさんNGNG
「これからC始める」なら

・・・やめた
0345デフォルトの名無しさんNGNG
FFT(高速フーリエ変換)のソースコードを晒して下さっているページが沢山あるの
ですが、プログラム中の変数の説明がされているページが無く、関数へ渡す引数な
どが分からない状態です。インテルのページですら、説明はありませんでした。

現在、512pointsの離散正弦波データを配列に格納してあります。
それを用いてFFTを実現させたいのですが、DFTからFFTへの『プログラムでの説明』
がみっちり書かれているページなど、ご存知ないでしょうか?
または、ご教授願えないでしょうか?
数式でのDEF→FFTは理解しているのですが、それをプログラムに起こすことができません。
よろしくお願いします。
0346デフォルトの名無しさんNGNG
数学スレ池
0347デフォルトの名無しさんNGNG
すいません、VC++について教えてください。
A.cppで作成した関数をB.cppで使用したいのですが、
方法はどうしたらいいですか?

一応ヘッダーはincludeしました。
よろしくお願いいたします。
0348デフォルトの名無しさんNGNG
export
0349デフォルトの名無しさんNGNG
A.h
int foo();

A.cpp
#include <iostream>
void foo(){ std::cout << "A.foo called" << std::endl;" }

B.cpp
#include "A.h"
void bar(){ foo(); }
0350デフォルトの名無しさんNGNG
ANSIのAPIもここでいい?
a=sprintf(buf,"%s","unko");
ここで a に4が入るんだけど
実際には "unko\0" が格納されてて
ちょっと不気味なんだけど、そういうもんだっけ?
これがいやならsnprintf使えってこと?
0351デフォルトの名無しさんNGNG
うちの man ページにはこう書いてあるな。

These functions return the number of characters printed (not including
the trailing `\0' used to end output to strings), except for snprintf()
and vsnprintf(), which return the number of characters that would have
been printed if the size were unlimited (again, not including the final
`\0'). If an output or encoding error occurs, a value of -1 is returned
instead.
0352 ◆Z0vd5w812U NGNG
>>345
FFTについては理解してるカナ?
大抵のFFT関数にわたす引数は、1.実部配列、2.虚部配列、3.配列数、4.FFT/IFFTフラグ になるネ。
元データは実部配列に入れる。虚部配列はオールゼロ。
で、FFT/IFFT結果はその配列に格納されるヨ。
0353デフォルトの名無しさんNGNG
'\0'を含めた文字数を返さないのはたぶんstrlenに合わせてだろう。
0354デフォルトの名無しさんNGNG
>>350
snprintfでも4が返るぞ。
なんかCの文字列について根本的な勘違いをしてないか?
0355デフォルトの名無しさんNGNG
MSDNもってないのか?
0356デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_sprintf.2c_.swprintf.asp?frame=true
> sprintf は、buffer に格納されているバイト数を返します。終端の NULL 文字は含まれません。
> swprintf は、buffer に格納されているワイド文字数を返します。終端の NULL ワイド文字は含まれません。
ところでCランタイムといいながらC++限定版のswprintfもあるのはワロタ
0357デフォルトの名無しさんNGNG
ホンモノのswprintfは、バッファ長を引数にとる。
sprintfが、バッファ長を引数にとらなかったことを反省して規格ができたから。
MSのswprintfは、単にsprintfのwide文字版となっていて、
規格違反ではないかという話を聞いたことがある。
0358デフォルトの名無しさんNGNG
>>357
>>356のところに「ISOに従いたいなら#define swprintf _snwprintfを書けばいい」って書いてあるな。
sprintfもswprintfも互換性の欄にはしっかりANSIと書いてあるけど。
0359デフォルトの名無しさんNGNG
APIって・・・
0360デフォルトの名無しさんNGNG
#include<stdio.h>
void inttod(int dec,char*str);
main(){
int num;
char str[7];

printf("input:");
scanf("%d,&num");

inttod(num,str);

{
int i, n, dec;
if(dec < 0){
dec = -dec;
*str++ = '-';
}

for(i = 1, n = 10; dec >= n; i++, n *= 10);
for(n /= 10; i; i--, n /= 10) *str++ = dec / n % 10 + '0';
*str = '\0';
return;
}
printf("result:%s\n",str);
}
error C2105: '++' には左辺値が必要です。
error C2105: '++' には左辺値が必要です。
warning C4033: 'main' : 関数には戻り値が必要です。
とでたんですが、
左辺値が必要とはどうゆうことなんでしょうか?
t
0361デフォルトの名無しさんNGNG
>>360
左辺に置くなという意味
0362デフォルトの名無しさんNGNG
>>360
strは配列名だから
0363デフォルトの名無しさんNGNG
プログラム中に初期化されていないポインタが含まれていると、
最適化により、ポインタが失われてしまう危険性があると
本に書いてあるのですが、そんな事があるのでしょうか?
0364デフォルトの名無しさんNGNG
>360
>>1のリンク先の「配列とポインタ」という項を読め。

>363
本の名前をここに晒せ。
0365363NGNG
>>364
「美しいCプログラミング見本帖」のp.207です
一回も使われなかったら・・・という事なら納得できるのですが、
初期化されていないと、となるといまひとつピンと来ないです。
0366デフォルトの名無しさんNGNG
ブレイクブレイク
0367デフォルトの名無しさんNGNG
正直、俺も意味が分からん。
使われていなければ無くなるだろうけど
初期化(=宣言時の初期化?)されてなくても
使う前までに代入されれば問題ないしな。

「ポインタ」という言葉も
「型を持ったアドレス『値』」のことなのか「ポインタ変数」のことなのか
筆者がどちらの意味で使ってるのかも分からんし。

「アドレス値」を「どの変数にも代入しなければ」失われる(=リークする)のは確かだけどな。
0368デフォルトの名無しさんNGNG
左辺値ってなんですか?
0369デフォルトの名無しさんNGNG
>>368
=の左
0370デフォルトの名無しさんNGNG
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%E5%B7%A6%E8%BE%BA%E5%80%A4&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0371デフォルトの名無しさんNGNG
リークするのと失われるは違うぞ。
0372デフォルトの名無しさんNGNG
台風がうるさくて眠れんよ…。
>>368じゃないけどまとめてみた。

・左辺値(lvalue)とは
 オブジェクト型、あるいは void 以外の不完全型の式を
 左辺値という。

・オブジェクト型 (object type) とは
 void 型以外の型指定修飾子のリスト。
 (void 型だけは不完全型にカテゴライズされる)
 記憶域のサイズが確定している。

・不完全型 (incomplete type) とは
  [型指定修飾子リスト] void
| [型指定修飾子リスト] []
| 内容不明の構造体型、共用体型

 記憶域のサイズが確定していない。

・型指定修飾子とは
 型修飾子: const, volatile
 型指定子: void, char, short, int, long, float, double,
signed, unsigned, struct〜, union〜, enum〜, typedef〜
 の総称。

・代入演算子の左辺は左辺値か
 代入演算子の左辺は「変更可能な左辺値 (modifiable lvalue)」
 でなければならない。「変更可能な左辺値」には不完全型は含まれて
 いない。

だそうですよ。
0373デフォルトの名無しさんNGNG
「もしfoo.hというファイルがあればそれを#includeして、
そうでなければ〜」という処理はCではどう書けばいいのでしょうか?
教えてください。
0374デフォルトの名無しさんNGNG
>>373
どうしようもない
0375デフォルトの名無しさんNGNG
>>373
#ifdef USE_FOO_H
#include "foo.h"
#endif
みたいにするか、
ユーザーが作成したfoo.hがなければ
デフォルトの空のヘッダが読み込まれるようにインクルードパスを調整するとか。
後者は睡魔で朦朧としてる時にパニック起こすので素人にはお勧めしない。
0376デフォルトの名無しさんNGNG
『美しいCプログラミング見本帖』は買ったら駄目?
0377デフォルトの名無しさんNGNG
xの要素が規則正しく並んでいて(0,1,2,3,4,5,....)、y座標が配列要素の場合、
最小二乗法を求めるのはどうすればいいのですか?
0378デフォルトの名無しさんNGNG
>>377
先ずは最小二乗法でぐぐる。
現在先頭の方に出てくるページの解説を読んでそのロジックを書き起こす。
もしそれができないようなら初心者歓迎スレで聞く。
さもなくば毛布でもかぶって寝てしまえ。
0379デフォルトの名無しさんNGNG
規則正しくって、どんな規則?
0380デフォルトの名無しさんNGNG
ある関数の戻り値をunionのlongで受けてそれをunionのビットフィールドで特定のビットを判定したいのですがエラーが出ます

typedef union
{
unsigned long common;
struct
{
unsigned a : 1 ;
unsigned : 0 ; ←これがあると駄目?
unsigned b : 1 ;
} flag ;
} TEST1;

TEST1 test1;
test1.common = 32;
if ( test1.flag.b == 0 ){}

warning C4700: 値が割り当てられていないローカルな変数 'test1' に対して参照が行われました。

ビットフィールドの中に使わないビットがあるとエラーが出るのは何故でしょうか?

コンパイラはvc6です
0381380NGNG
すんません unsigned : 0 ;じゃなくて unsigned : 1 ; ですね
失礼しました
0382デフォルトの名無しさんNGNG
gccだと当たり前に通るんだけどな。
記憶違いじゃなければSunOS4のccでも通ったと思う。
#大抵使わないビットにも名前付けちゃうからなぁ。
0383デフォルトの名無しさんNGNG
エラーじゃなく警告じゃん
0384345NGNG
>>352
亀レスすいません。
引数については分かりました。実数部に元データを入れて、虚数部をオール0・・・、
これからフーリエ変換するのに、どうして実数部と虚数部が引数に使われているのだろう
とずっと悩んでいました。ありがとうございました。

次の問題が…。ネット上にあるものや手元の書物を見ると、標本数が2個、4個、8個の
ものが多く、私が欲しい512個のもの(もしくは一般化したもの)のソースが見つかりません。
標本数が2個、4個、8個のそれぞれのソースコードを見ると、DFTからFFTへ式変形をした
最終結果を長々と書いているように見えます。ということは、標本数が512個の場合も地道に
求めていったものをソースに起こすことになるのでしょうか?
一般化は可能なのでしょうか?

よろしくお願いします。
0385デフォルトの名無しさんNGNG
え?
http://momonga.t.u-tokyo.ac.jp/~ooura/fftman/index.html
こことか、検索に出ないの?
0386デフォルトの名無しさんNGNG
いつも思うんだが、こういうときは
検索結果を教えるのではなく
検索キーワードを教えるべきだと思う。

でないと、いつまでたっても
>>384は成長しないで坊やのままだよ
0387デフォルトの名無しさんNGNG
すみません、教えてください。
俺の持ってるテキストで以下のコードがあり、入力したところ
「宣言に型が多すぎる」 とおこられました。
borland のフリーコンパイラじゃだめって事でしょうか?
テキストが間違っているのでしょうか?

#include <stdio.h>
struct WORD{
unsigned int ax;
}
struct BYTE{
unsigned char al;
unsigned char ah;
}
union CONBINE{
struct WORD x;
struct BYTE y;
}
void main(){
un.x.ax=0x1122;
printf("al=%x\n",un.y.al);
printf("ah=%x\n",un.y.ah);


よろしくお願いします。
0388デフォルトの名無しさんNGNG
<stdio.h>またはその中でさらにincludeしているファイルの中に
WORDやBYTEという名前がすでに別の型として使われているだけ。
0389387NGNG
すみません、解決しました。
構造体宣言の;入力漏れでした。
共用体も名前入力忘れてました。
すみませんでした。
0390デフォルトの名無しさんNGNG
windows.hインクルードしたら終わるな。
0391デフォルトの名無しさんNGNG
> >>373
> どうしようもない

えー、Cってそんなこともできないんですか?
0392デフォルトの名無しさんNGNG
> 『美しいCプログラミング見本帖』は買ったら駄目?

ちっとも美しくなかったぞ。あんなのを見本にしちゃだめ
0393デフォルトの名無しさんNGNG
> 「宣言に型が多すぎる」 とおこられました。

そんなことは言ってません。

よく読め ぼけ
0394デフォルトの名無しさんNGNG
>>388 はしったかぶりで見当外れなこと言って恥かいてるぼけ
0395デフォルトの名無しさんNGNG
>391
Cのプリプロセッサで出来ないことは他にもたくさんあるぞ。
そういうことのために、perlがある。
0396デフォルトの名無しさんNGNG
>>395
釣りか?wwww
0397デフォルトの名無しさんNGNG
プリプリプロセッサが要るというわけですな。
0398395NGNG
まぢレスだったんだが、何か変なこと言っちまったかな・・・
0399デフォルトの名無しさんNGNG
UNIXでは、そう言う用途のために、autoconf / automake / configureとかが
あるわけだけど。最近ならperlも良いかもね。
0400デフォルトの名無しさんNGNG
> えー、Cってそんなこともできないんですか?

だってだめ言語じゃん。
0401デフォルトの名無しさんNGNG
     / ̄ ̄ ̄ ̄ ̄ ̄\
    /             \ .
   /                  ヽ
    l:::::::::.                  |.
    |::::::::::   (●)     (●)   |
   |:::::::::::::::::   \___/     |  ←この辺をトリプルクリックすると
    ヽ:::::::::::::::::::.  \/     ノ           大ちゃんの目が光る!
0402デフォルトの名無しさんNGNG
>>397
謎のアナウンサーの声優は?
0403デフォルトの名無しさんNGNG
>401
感動した。
0404デフォルトの名無しさんNGNG
すいません。教えてください。
今、適当な時間・分・秒の値を適当な整数型変数に代入して、
秒数に換算するっていうので入力しているんですけど、それで、

#include<stdio.h>
void main(void)
{
int h=1;
int m=6;
int s=40;
printf("%d H%d M% S",h,m,s);
printf("%d S",h*3600+m*60+s*1);
}
って、入力してborlandのフリーのコンパイラで実行して
実行してできたEXEファイルを実行(MSDOS上で)したのですが
EXEファイルが強制終了されてしまうのですが何か間違っているんでしょうか・・・
他のファイルだと正常にコンパイルできて実行できるのですが・・・・
0405デフォルトの名無しさんNGNG
>printf("%d H%d M% S",h,m,s);

最後、%だけになってるから。
0406デフォルトの名無しさんNGNG
>>405
ありがとうございました。無事コンパイルできました。
0407デフォルトの名無しさんNGNG
printf("%d H%d M% S",h,m,s);
ボーランドのコンパイラというかライブラリだとなんでコレ落ちるの?
ちょっとスットロくない?
printfって、フォーマット部分の構文解析で構文エラーに当たっても
一般的にはその分を無視するだけだよね
gccなんかだとprintfのフォーマットエラーすらWarningでるけど
0408デフォルトの名無しさんNGNG
stdbool.hがあるなら
そっちを使いたい!
なければ
#define true 1
#define false 0
typedef bool int;
したい。
0409デフォルトの名無しさんNGNG
0x00400000みたいな16進法をプログラムの引数として
unsigned int型に変換して利用したいんですが
char argv[1]=0x00400000をuintに変換する関数ってないでしょうか
0410デフォルトの名無しさんNGNG
char argv[1]=0x00400000

32bitのcharを始めて見たよ
0411デフォルトの名無しさんNGNG
よくあるのに > 32bitのcharを
15年ほど前わたしが使ってたマシンでうごいてたCコンパイラーも
charが32bitでした
intも32bitでしたし
shortも32bitでしたし
longも32bitでしたが...。
それでもそのこと自体は規格を満たしているんですよね。
0412デフォルトの名無しさんNGNG
> 0x00400000をuintに変換する関数ってないでしょうか

まちがってもs..から始まってfで終わる某関数を使うなよ
0413デフォルトの名無しさんNGNG
>>409
strtol
0414デフォルトの名無しさんNGNG
>>412
sscanfの何が悪いんだ。
0415デフォルトの名無しさんNGNG
sprintfを使っても変換出来ないって言いたかったんじゃない?
0416409NGNG
ありがとうございます
strtolでなんとかなりました、Windowsだと0xFFFFFFFFは
オバーフローするみたいですが
0417デフォルトの名無しさんNGNG
strtoul()
0418デフォルトの名無しさんNGNG
>411
>よくあるのに > 32bitのchar
よく無い
0419デフォルトの名無しさんNGNG
>>411
charも32ビットでも規格上問題ないけど、sizeof (char)が1でないのなら大いに問題あり。
0420デフォルトの名無しさんNGNG
sizeof(int)が1でも構わないしな。
0421デフォルトの名無しさんNGNG
ちゃんと-7FFF〜7FFFの数値を入れられるのならな。
0422デフォルトの名無しさんNGNG
質問です。
int i = (0xFFFFFFFF * 0xFF)% 0xFFFF
こういう感じで式の途中にオーバーフローする式というのは使っても良い物でしょうか?
0423デフォルトの名無しさんNGNG
>>422
いいかどうかわかんないけど、もしだめならWindows上ではMulDivを使えばいい。
0424デフォルトの名無しさんNGNG
と思ったけどかけたあと、余りを出しているのかよ……。OTL
0425422NGNG
はい;最終的にはintにおさまる形なんですが、処理の途中でのオーバーフローは関係ないですかね?
0426デフォルトの名無しさんNGNG
>>422
コンパイラが計算してくれるんちゃう?
0427422NGNG
ん〜・・・実際は変数ですから;
まぁ・・・このPCではちゃんと計算できてるから問題ないとみなしていこうとと思います;
0428デフォルトの名無しさんNGNG
(A * B) % C
= (A % C) * (B % C) % C
0429デフォルトの名無しさんNGNG
>>427
心配だったら(A * B) % CのうちAかBのどっちかをlong longや__int64にキャストすればいいさ。
0430422NGNG
>>429
__int64型って初めて聞きましたw;
BCCでも使えるっぽいのでそれでいこうと思います。ありがとうございました。
0431デフォルトの名無しさんNGNG
>>430
ちなみに__int64はVC/BCCの独自拡張でISO Cやgccがlong long
0432デフォルトの名無しさんNGNG
>>>422
最近ム板でまったく同じような質問を見た。
探してみそ。多分C系のスレだと思う。
0433デフォルトの名無しさんNGNG
「短絡評価に依存するコーディングはしない方が良い」
とあるコーディングチェックツールに叱られたんですが、
どういう根拠なんでしょうか?
ツールのマニュアルには載ってなかったもので
0434デフォルトの名無しさんNGNG
>>433
そのコーディングチェックツールは?
0435デフォルトの名無しさんNGNG
>>434
内部的に使用しているツールなんで書いても意味ないですが

具体的には
typedef struct {
int m;
}ST;
ST* p;

if( (p !=NULL) && (p->m > 0)){
/* */
}
とした時に警告がでました。
このパターンで何か問題のあるシチュエーションというのはあるんでしょうか
0436デフォルトの名無しさんNGNG
>>435
製造元に問い合わせるのが早いんじゃないの?
コーディングルールなんて宗教みたいなもんだし。
俺は問題ないと思うよ。
0437デフォルトの名無しさんNGNG
>>436

そうですね。
自分でもなんでこれがマズイのかいくら考えてもわからなかったもので。

製造元に問い合わせてみます

ありがとうございました
0438デフォルトの名無しさんNGNG
>>435
おそらく、if文の条件の後半のことを言いたいんじゃないのかな。
pがNULLのときのp->mはCなら問題ないけど他の言語だと問題があるかもしれないからね。
#でもその指摘は余計なお世話だと思う。
0439デフォルトの名無しさんNGNG
>>433
ものの言い方1つで聞こえ方がずいぶん違うんだよな
・○○はしない方がいい(高圧的で論点先取
・○○は避けて下さい(ドライに依頼

お・し・ご・となんだから、
お客様のご依頼ならできるだけ希望に沿えるように努力するが、
別にそいつに師事に来てるわけじゃないんで
トーシロが職人に口出しするような言い方にはカチンときたりする。

こっちも商売なんで完全に臨界超える瞬間まで顔には出さないけどね。
0440デフォルトの名無しさんNGNG
>>435
無駄な括弧がある
0441デフォルトの名無しさんNGNG
>>385-386
そのページにあるいくつかのソース(DL出来るもの含む)には、
>>384が欲しているものは無いな。
俺も暇だったんで探してみたが、確かにサンプリング数が2やら4やらのものしかないな。
0442デフォルトの名無しさんNGNG
サンプリング数と基数を混同してやいないか?
0443デフォルトの名無しさんNGNG
・○○はしない方がいい(高圧的で論点先取
・○○は避けて下さい(ドライに依頼

正解) するな ぼけ。
0444デフォルトの名無しさんNGNG
> pがNULLのときのp->mはCなら問題ないけど他の言語だと問題があるかも

はあ? Cのコンパイラーが他の言語のおせっかいもやくわけぇ?
0445デフォルトの名無しさんNGNG
>>444
よく読め
0446デフォルトの名無しさんNGNG
そのコーディングチェックツールは&&や||を使っただけで文句を言う気がする
0447デフォルトの名無しさんNGNG
>>446
if(p != NULL && p->m == 1)で文句言われても
バグが無ければ、if(hoge == 1 && foo == 2)では
文句は言わないだろう・・・。
0448デフォルトの名無しさんNGNG
>>435
ifで複数の条件を書いたときに、その評価順序は常に最初からとは限らなかったはず。
つまり、 p != NULLが最初に評価されればその場で偽となるが、p->m > 0 から評価されることがあり、
そのときp = NULLであったなら、NULLなポインタpに対して参照しているためエラーが発生する可能性があるのかと言いたいのでは?

なのでこの場合の対処コードは
if(NULL != p) {
if(p->m > 0) {
/* 処理 */
}
}
でよろしくない?
0449デフォルトの名無しさんNGNG
>>448
初耳です
0450デフォルトの名無しさんNGNG
>>448
&&と||に限り、評価順序が規定されている。
0451デフォルトの名無しさんNGNG
>>448
俺も初耳
0452デフォルトの名無しさんNGNG
>>450
1つ忘れてる
0453デフォルトの名無しさんNGNG
>>448
もっと勉強汁!
0454デフォルトの名無しさんNGNG
450みて、ちょっと調べたんですが、
 a = foo() + bar();
はfoo()、bar()どちらが先に評価されるかは不定っぽいんです。
これと+の結合規則が左からとは、関係ないんですか?
0455デフォルトの名無しさんNGNG
>>454
関係ありません。
0456デフォルトの名無しさんNGNG
/*
  int foo(){ return 4; }
  int bar(){ return 8; }
*/

a = foo() + bar() + 2;
→a = foo() + 8 + 2;
→a = 4 + 8 + 2;
→a = 12 + 2;
→a = 14
0457デフォルトの名無しさんNGNG
>>452
,
↑これ?
0458デフォルトの名無しさんNGNG
あと、
: ?
これも
0459デフォルトの名無しさんNGNG
>>458
:と?が逆
0460デフォルトの名無しさんNGNG
>>454
用語「不定」の使い方が正しくない
この場合は「未規定」という

揚げ足っぽいが
読むべきものを読んでない人の
典型的なミスなのであえて指摘
0461デフォルトの名無しさんNGNG
>>460
お前、DVDプレイヤーを電気蓄音機って呼んでるだろ?

いい加減 JIS なんて捨てろよ。

もう現役引退したクソジジイ供が必死にひねり出した
JIS の迷訳語なんて覚えても無駄。
0462デフォルトの名無しさんNGNG
意図的かそうでないかの違いだろ
0463デフォルトの名無しさんNGNG
>>461
俺用語よりマシだと思うが
0464デフォルトの名無しさんNGNG
>>463
http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html
>JIS Cでは不定を「未規定の動作」という表現を使っていますが、俗には「不定」という表現の方がよく使われるようです。

これでもか?
0465デフォルトの名無しさんNGNG
>>464
これでもかって、知るかよw
そのページの俺さんが言ってるだけだろ
0466デフォルトの名無しさんNGNG
>>464
ちなみに不定の値は未規定の動作の結果として生じる場合があるがそれだけではない
0467デフォルトの名無しさんNGNG
>>465
お前、まるで戦時中の日本兵みたいだな(w

そう、あれは誰だったっけ?

戦時中、たまたま米兵が使っていた LUX の石鹸の良い香りを
嗅がせてもらったとき、
「ああ、俺達はこんなものを使っている奴らと戦っていたんだ。
これじゃ戦争に負けるのも当たり前だな」
としみじみ感慨にふけったものだ、

という追想を語っていた老人の話を、ふと思い出してしまったよ。
0468デフォルトの名無しさんNGNG
>>467
そういう台詞は勝ってから言いな
読むべきものを読んでない人なら
何か言うたびごとに突込みどころ満載だろうなあ・・・
0469デフォルトの名無しさんNGNG
まず質問を冷静に吟味して意図を読み違えていないか否かをはっきりさせてから回答しましょう。
回答する前には最低限検索を。
0470デフォルトの名無しさんNGNG
そんな言葉尻つかまえて議論するの面倒くさいから
unspecified と undefined を使うことにしようよ。
アホらしいと思いませんか
0471デフォルトの名無しさんNGNG
>>470
じゃ英語圏のサイトへでも行けよ勝手に
あんたが抜けても誰も困んねーよ
0472デフォルトの名無しさんNGNG
>>468
どうでもいいが、
お前、くれぐれも宗教には気をつけろよ。

中国の赤い手帳に書いてある事が
世の中の全てではないぞ。
0473デフォルトの名無しさんNGNG
>>472
宗教? 中国?? なんだ???
おめーヤクでもキメてんのか????
0474デフォルトの名無しさんNGNG
JIS信者死ね
0475デフォルトの名無しさんNGNG
>>448
評価順序は問題の原因の一つではあるが、本質的な問題ではない。
0476デフォルトの名無しさんNGNG
>>474
けけけ尻尾巻きよった
0477デフォルトの名無しさんNGNG
>>476
>けけけ尻尾巻きよった

もしかして筒井康隆ファン?
0478デフォルトの名無しさんNGNG
うわ、こいつキモッ・・・ まじ何かキメてるっぽい
0479デフォルトの名無しさんNGNG
いや何・・・

彼の描く小説にしばしば出てくる、
極端に低俗な人格の人間達が喋る口調と
あまりに酷似していたもので、つい。
0480デフォルトの名無しさんNGNG
どの作品の何ページだ
俺出版じゃページ振ってないだろうけど
0481デフォルトの名無しさんNGNG
ここら辺のページ
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%E7%AD%92%E4%BA%95%E5%BA%B7%E9%9A%86%E3%80%80%E3%81%91%E3%81%91%E3%81%91&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0482小野NGNG
すいません。はじめまして。C言語プログラミングで1から1000までの数を素因数分解するソースを教えてください。ヒントでもいいです。すいません
0483デフォルトの名無しさんNGNG
>>481
4時間近くも調べるなよ、ヒマなやつだなw
ぐぐったのはいいが、参考文献の引き方間違えちゃいかんな
俺が聞いたのは2004-08-22 14:05の時点であんたが根拠にしていた文献だ
検索結果のうちのどれかでは答えになってないぜ (プ
0484デフォルトの名無しさんNGNG
>>482
2から、31までの数で割るようなループを持ったプログラムを作ればいいのでは?
0485デフォルトの名無しさんNGNG
固定長のキーと値の組を持つ構造体を定義したいのですが、
perlの連想配列のような構造を表すにはどうすれば良いのでしょうか?
0486デフォルトの名無しさんNGNG
typedef struct {
  char key[256];
  char value[256];
} element_t;

int find(char *key, element_t *begin, int size){
  int i;
  for(i = 0; i < size; i++){
    if(0 == strcmp(key, (begin + i)->key))
      return i;
  }
  return -1;
}
0487デフォルトの名無しさんNGNG
プログラムの組み方おしえてください
他で聞いたら場違いと指摘されてがっかりして
こちらへきました
どうかおねがいします

g( x )=杷i覇xp(-((x-ai-2kπ)^2)/4σ)
N:サンプル数 σ:定数
内側のシグマでkを1〜N迄足して
外のシグマでaiとfiを1〜Nまで変えてたしていく
i=1〜Nです
はじめf1とa1固定でkを回した後に
f2とa2を固定して回すってかんじで最後全部たして
xの関数にするんですけど
どうやったらよいでしょうか???
0488デフォルトの名無しさんNGNG
なにが分からんのだ?
宿題ならスレ違いだが?
0489デフォルトの名無しさんNGNG
main()
{
 double g;

 g = 0.0;
 for (i = 1; i <= N; i++) {
  for (k = 1; k <= N; k++)
   g += f * i * exp(-((x - a * i - 2 * k * π) ^ 2) / ( 4 * σ));
 }
 printf("%g\n", g);
}
0490デフォルトの名無しさんNGNG
main() ←ジジイコード
0491デフォルトの名無しさんNGNG
>>490 mainぐらいてめぇで書けよ生晒し厨め
0492デフォルトの名無しさんNGNG
生晒し厨?
0493デフォルトの名無しさんNGNG
main()
だけで怖がるのはかなり厨だな。
int main()とするやつはまあいいが(Javaやってる癖でそうなるやつもいる)
じゃあどう書くんだ? といいかえして、
void main() とか
int main(void) だと
答えたりするから激しく脱力してしまう...
0494デフォルトの名無しさんNGNG
int main(void)
は何がいかんのか
0495デフォルトの名無しさんNGNG
何も問題ないだろ

そもそもvoid main(void)だって問題ないよ
うちのライブラリでは
0496デフォルトの名無しさんNGNG
枝葉末節
0497デフォルトの名無しさんNGNG
>>490-495
どれが正しいですか?自分が持ってる本達でもばらばらなんですが...
0498デフォルトの名無しさんNGNG
一番正しいのは
int main( int argc, char *argv[] )
だな。間違いない
0499デフォルトの名無しさんNGNG
envpはどこいった
0500497NGNG
>>498
そうだったんですか。参考にしまふ。
0501デフォルトの名無しさんNGNG
http://www.kouno.jp/home/c_faq/c11.html#12
0502デフォルトの名無しさんNGNG
envpって標準じゃなかったんか、知らなんだ
0503デフォルトの名無しさんNGNG
そういやunsigned argcってどうなんだろう?
argvはunsigned charでもいいって俺の持っている本には書いてあるけど。
0504デフォルトの名無しさんNGNG
>>501
それ間違ってるよ
0505デフォルトの名無しさんNGNG
>504
正しい仕様は?

もちろん引用元も明記してね♥
0506デフォルトの名無しさんNGNG
有名な「C FAQ」の
10年以上誰も見つけられなかった間違いを
>>504が見つけてくれました。
0507デフォルトの名無しさんNGNG
すげぇな>>504!!
0508デフォルトの名無しさんNGNG
>>504 の言い訳マダー?
0509デフォルトの名無しさんNGNG
C FAQも古いところがあるけどな。
0510デフォルトの名無しさんNGNG
ANSI Cならmain()は間違いだけど
ANSIじゃないCならmain()は間違いじゃないよ
0511デフォルトの名無しさんNGNG
それは「main()が間違いじゃない環境ならmain()は間違いじゃない」
という意味の無い言い訳だな。
0512デフォルトの名無しさんNGNG
>>510
で、>>501のどこが間違ってるの?
0513デフォルトの名無しさんNGNG
>>510
ANSI じゃない C なんか持ち出すなら、そもそも
最初のエントリポイントが main() じゃないのもあるわけで
んなものは他のスレで思う存分語るがいいさ。
0514デフォルトの名無しさんNGNG
>>510
確かに ANSI じゃないCなら

ENVIRONMENT DIVISION

なんて奴だって
「これは ANSI 規格に準拠しないCです!」
って言い張るのは自由だしな。
0515デフォルトの名無しさんNGNG
それが通る非ANSIのCコンパイラはないよ。
0516デフォルトの名無しさんNGNG
そもそもCとは何なのかを考えさせるな...
・K&R C
・ANSI C
・組み込み系などのCもどき
0517デフォルトの名無しさんNGNG
好きなだけ悩めばいいが、特殊なのはその環境のスレへ逝けというだけ。
0518デフォルトの名無しさんNGNG
>>507
すごいのはおまえ

.>0個か2個の引数 を持つと定義しなければならない

こんなの見て何にも感じない能天気をわざわざ泣かす理由も価値も今のところない
0519デフォルトの名無しさんNGNG
>>518
なんでそれがいかんの?
0520デフォルトの名無しさんNGNG
どうもこうもないだろ
コンパイルできる時点で立派なC言語だよ

という人が多いです。助けて
0521デフォルトの名無しさんNGNG
で、なにがどうマズいか説明できんのか
0522デフォルトの名無しさんNGNG
理由も価値も今のところない
0523デフォルトの名無しさんNGNG
> そもそもCとは何なのかを考えさせるな

いいえ。
標準規格のC 1つだけです。
0524デフォルトの名無しさんNGNG
> 一番正しいのは
> int main( int argc, char *argv[] )

空白あけるなよぼけ
0525デフォルトの名無しさんNGNG
> ANSI Cならmain()は間違いだけど

これウソ
0526デフォルトの名無しさんNGNG
>>523
つまりこの世のものではないわけだな
0527デフォルトの名無しさんNGNG
> >>510
> で、>>501のどこが間違ってるの?

510じゃないけど答えてやろう。

もっと最近の話では、規格は国際標準ISO/IEC 9899:1990として採択 された。そしてこのISOの規格がそれより前に存在したX3.159に取っ てかわった。

これが大うそだろ。
こんな簡単なこともわからんのかよ。
おまえらレヴェル低すぎ
0528デフォルトの名無しさんNGNG
> 有名な「C FAQ」の
> 10年以上誰も見つけられなかった間違いを
> >>504が見つけてくれました。

おまえもぼけ。
10年前だったからまちがいじゃなかったわけだろ ぼけ

いまはまちがい
0529デフォルトの名無しさんNGNG
> > 0個か2個の引数 を持つと定義しなければならない
> こんなの見て何にも感じない能天気をわざわざ泣かす理由も価値も今のところない

いや、この記述はあってるだろ?
そんなところみて「これちがってる」とか思ったおまえは、
規格票一度もみたことないぼけ決定だな。
0530デフォルトの名無しさんNGNG
>>529
おまえも能天気、いつもの揚げ足はどうした (プププ
0531デフォルトの名無しさんNGNG
こだわりのねーやつ嫌い
0532デフォルトの名無しさんNGNG
贋物くせー
0533デフォルトの名無しさんNGNG
> おまえも能天気

いーや。これは合ってる。
おまえこそちゃんと規格しらべろよ ぼけ
0534デフォルトの名無しさんNGNG
よっぽど悔しかったんだな・・・
0535デフォルトの名無しさんNGNG
>>534
ハァ? 偽者確定っぽいな・・・
0536534通りすがりですNGNG
偽者とは????
本物とか偽者とかそういう者じゃないんですが・・・
0537デフォルトの名無しさんNGNG
正に疑心暗鬼
0538デフォルトの名無しさんNGNG
まだ調べがつかないのか。

あってるのに。

うちのCD-ROMかしたげよーか?
PDFだけど
0539デフォルトの名無しさんNGNG
そもそもしょーもない本物の更に偽者・・・
はぁ・・・とりえねー
0540デフォルトの名無しさんNGNG
>あってるのに。
論点からしてまさにガキ
0541デフォルトの名無しさんNGNG
>>もっと最近の話では、規格は国際標準ISO/IEC 9899:1990として採択 された。
>>そしてこのISOの規格がそれより前に存在したX3.159に取っ てかわった。

>これが大うそだろ。
>こんな簡単なこともわからんのかよ。
>おまえらレヴェル低すぎ

X3.159が俗に言う「ANSI C(C89)」で
ISO/IEC 9899:1990が俗に言う「ISO C」だろ。
そしてANSI Cが制定された後にISO Cが制定された。
どこが間違ってるんだろ。
0542デフォルトの名無しさんNGNG
>>539
病院いけ
0543デフォルトの名無しさんNGNG
> ISO/IEC 9899:1990が俗に言う「ISO C」だろ。

ぼけ
ISOで規定されたCの最新のがいつのなのかさえしらないやつが
ぼけたこといってんじゃねーーよ
0544デフォルトの名無しさんNGNG
>>542
じゃ、日当と医療費ください
0545デフォルトの名無しさんNGNG
>>543
ANSI-C(C89)がISO/IEC9899:1990に取って代わったって書いてあるだけでしょ?
その後のことなんか一言も書いてないじゃん。
日本語読めないの?

本気で「他の人は誰もC99を知らない」とでも思ってるの?
すごいすごい。さすがレヴェルが違うね。
0546デフォルトの名無しさんNGNG
だからとりえねーつってる
0547デフォルトの名無しさんNGNG
System V系ってのもある。
0548デフォルトの名無しさんNGNG
>>545
ぼけ
その数文字前を見ろよ
0549デフォルトの名無しさんNGNG
なんだ、原文みたらまちがってないじゃないか。
この日本語訳だけまちがってたのかー

やーい > 誤訳
0550デフォルトの名無しさんNGNG
ライブラリ(.lib)って一旦作ると修正できないんですか?
0551デフォルトの名無しさんNGNG
らいぶらりあんを使えばできます。

Unixの場合はらいぶらりあんとあーかいヴぁーの区別が曖昧です
0552550NGNG
>>551
ありがとうございます
「らいぶらりあん」とはソフトの名前でしょうか?
0553デフォルトの名無しさんNGNG
>>552
アーカイバー→tar(TapeArchiver)
ライブラリアン→ar(Archiver)

ライブラリを管理するのがライブラリアンですな
0554550NGNG
せっかく教えていただいたのに、自分が未熟なのでよく分かりませんが
調べてきます・・・
0555デフォルトの名無しさんNGNG
今だ!555ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0556デフォルトの名無しさんNGNG
.libを作るのに使ったヤツだよ
0557デフォルトの名無しさんNGNG
関数ポインタは、何に使うんですか?
0558デフォルトの名無しさんNGNG
>>557
関数を自由に差し替え出来るようにするため。
atexit に渡す関数ポインタなどがその例。
0559デフォルトの名無しさんNGNG
C言語に関する雑談ならこちら

ラウンジでC言語
http://etc3.2ch.net/test/read.cgi/entrance/1093006298/l50
0560550NGNG
ライブラリについてです
ライブラリを編集するということは出来ないってことでしょうか?
毎回上書きする形になるんですかね
0561デフォルトの名無しさんNGNG
普通は追加も削除も入れ替えも出来る
0562デフォルトの名無しさんNGNG
階層の深いDIRを処理した時にバグがでました。なぜか最下層のDIRがファイルにみなされてしまうため、そっから変なファイルやDIRができます助けてください。お願いします。
EXPORT BOOL __stdcall CopyDir(LPSTR sSource , LPSTR sDest){
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATA uFind;
char sFindPath[256],sFoundFile[256],Moto[256],Saki[256];
BOOL ret;
CreateDirectory(sDest, NULL);//フォルダを作成する
AddBackslash(sSource);//コピー元バックスラッシュ追加処理呼び出し
AddtBackslash(sDest);//コピ−先バックスラッシュ追加処理呼び出し
sprintf(sFindPath,"%s*.*",sSource);
hFind = FindFirstFile(sFindPath, &uFind);
if (hFind != INVALID_HANDLE_VALUE){
do {
strcpy(sFoundFile,uFind.cFileName);//ファイル名の取得
if ((!(strcmp(sFoundFile, "..") == 0)) && (!(strcmp(sFoundFile, ".") == 0))){
sprintf(Moto,"%s%s", sSource,sFoundFile);
sprintf(Saki,"%s%s", sDest,sFoundFile);
if (uFind.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
CopyDir(Moto, Saki);
}
else{ //ファイルの場合はコピーする
CopyFile(Moto, Saki, FALSE);
}
}
} while (FindNextFile(hFind, &uFind));
FindClose(hFind);
return 0;//成功
}
FindClose(hFind);
return 1;//失敗
}
0563デフォルトの名無しさんNGNG
>>2を読め
0564デフォルトの名無しさんNGNG
>>1を読め
0565デフォルトの名無しさんNGNG
>>562
解決には全然関係ないけどAddBackslash(sSource);なんてやんなくても
sprintf(sFindPath,"%s*.*",sSource);をsprintf(sFindPath,"%s\\*.*",sSource);にすりゃいいんじゃないか?

それとすれ違いだからWin32APIスレ行け。
0566デフォルトの名無しさんNGNG
>>563
愛甲が居ますた。
0567デフォルトの名無しさんNGNG
>>563
何も見えないんですが
莫迦には読めない文字セットで書かれているんでしょうか?
0568デフォルトの名無しさんNGNG
>>567
ポインタが意図していないところを指しているだけ。
563のバグ
0569デフォルトの名無しさんNGNG
階層が深くてバッファオーバフローしている悪寒。
0570デフォルトの名無しさんNGNG
C言語が誕生したのは何年でしょうか?

1972年という説と1973年という説がWebで検索するとあるようです。

http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
をみると1971-1973

Bell研のリッチーのページをみると
http://www.bell-labs.com/history/unix/ritchiebio.html
Dennis M. Ritchie
1972 -- Creates C language
とかいてありますね。^^

0571デフォルトの名無しさんNGNG
質問です。一部コードにC++の仕様が混ざっている虞があることを
あらかじめお詫びしておきます。sscanfについての質問になりますので、
こちらに書き込み致しました。質問は、次のコードの実行結果が期待した
ものにならないというものです。
#include <stdio.h>
int main()
{
    char str[256] = {'\0'};
    char data[] = "■<>Yahoo! JAPAN<>";
    int res = sscanf(data, "■<>%[^<]<>", str);
    printf("%s\n%s\n%d", data, str, res);
    return 0;
}
上のコードの実行結果は次のようになります。
■<>Yahoo! JAPAN<>

0
上のコードに期待する結果は次です。
■<>Yahoo! JAPAN<>
Yahoo! JAPAN
1

■をdataとsscanfのパターンの両方から取り除いた場合には、期待した
結果を得ることができますが、必要なコードには必須の文字です。理由が
お分かりの方は、ご教授頂ければと思います。開発環境は
Metrowerks CodeWarrior8.3 Pro forWinです。MicrosoftVisualC++では
期待した結果になるようです。
0572デフォルトの名無しさんNGNG
ライブラリの問題だろう。Metrowerks に問い合わせるのが先では?
0573デフォルトの名無しさんNGNG
■ はUnicodeで 25a0、 % は 0025。 この辺が原因かも。

int res = sscanf(data, "%■%<>%[^<]<>", str);

で試したらどうなる?
0574デフォルトの名無しさんNGNG
やっぱり
■<>Yahoo! JAPAN<>

0
になりました。Metrowerksのテクニカルサポートに連絡しましたので
結果は報告致します。
0575デフォルトの名無しさんNGNG
C言語で文字、画像出力や計算以外に何が出きるの?
ペイントソフトとか作れるの?
0576デフォルトの名無しさんNGNG
>>575
Cだとやや役不足だね。
Delphiならできるよ。
0577デフォルトの名無しさんNGNG
>>575
作れるよ。
市販のWinアプリはCやC++で作られてるのが多いと思う。
0578デフォルトの名無しさんNGNG
最近知って、役不足に突っ込みたい人の数 → (
0579デフォルトの名無しさんNGNG
ageるぞ
0580デフォルトの名無しさんNGNG
CやC++とDelphiはどっちが良い?
Delphiはあまり使われていないが…
0581デフォルトの名無しさんNGNG
>>575
この2chを支えるLinuxもApacheもCで作られているよ(^-^=)
0582デフォルトの名無しさんNGNG
有名オンラインソフトは、DelphiやC++Builderで作られてるのもあるよね。

GUI関係はVC++&MFCよりボーランド製品が楽だと思う。
(VC++.NETは触ってないからよく知らんけど)
0583デフォルトの名無しさんNGNG
フォトショップもCで作られているよ(^-^=)

0584テフォルトの名無しさんNGNG
人間もCでプログラムされているよ(^-^=)

0585デフォルトの名無しさんNGNG
WindowsもIEも各種Unixも皆Cだよね。OfficeやGnomeはC++だけど。
0586デフォルトの名無しさんNGNG
Winそのものはしらんけど、IEはC++だろ。
0587デフォルトの名無しさんNGNG
とは言え、ここで、「C言語で何が出来るの」
なんて(自分で調べようともせず)聞くような人には
「あなたには、大したものは作れませんよ」と答えたい。
0588デフォルトの名無しさんNGNG
お前が使ってるギコナビはDelphi製
0589デフォルトの名無しさんNGNG
ググっても全然でてこないのだが
0590デフォルトの名無しさんNGNG
>>587
調べる=ここで聞く
文句あるか?
0591デフォルトの名無しさんNGNG
int main( int argc, char* argv[] )

main関数の引数argcとargvの由来はなんぞや。
0592デフォルトの名無しさんNGNG
>>591
「argc argv 由来」でぐぐって1位のところに出てくる説明では納得いかんか?
0593デフォルトの名無しさんNGNG
argument counter/vector
0594デフォルトの名無しさんNGNG
argv は argument variables だと思ってた
0595デフォルトの名無しさんNGNG
> Cだとやや役不足だね。

「役不足」を辞書でしらべろ! ぼけ
0596デフォルトの名無しさんNGNG
arg verb.
0597デフォルトの名無しさんNGNG
ttp://dictionary.goo.ne.jp/search.php?MT=%CC%F2%C9%D4%C2%AD&kind=jn
0598デフォルトの名無しさんNGNG
>>578
>>595 だけみたい。
0599デフォルトの名無しさんNGNG
おい! おまえだ誰か教えてくれ。
標準のCではどう書くのが正しいのか知りたい!
qsortの第4引数に食わせるための関数mycompが以下のようなものだったとする
int mycomp(const char **a, const char **b)
{
return strcmp(*a, *b);
}

さて、どうプロトタイプを書けば
gcc -Wallでも VCの cl -nologo -W4 でもwarningが出ないような
コードが欠けるの?
引数にキャストしたくないわけよ。

もしかしてCってそんなこともできない?
0600デフォルトの名無しさんNGNG
なんでconst void*じゃなくconst char*なんだ?
バカだから?
0601デフォルトの名無しさんNGNG
const void* だと何でも渡せちゃうじゃん。
0602デフォルトの名無しさんNGNG
本来「void *」には何を渡しても警告でないべきなのに、
文句言うgccがいけないんだな。
0603デフォルトの名無しさんNGNG
何でも渡せるからと言って、別に何も問題はない。

int mycomp(const void *a, const void *b)
{
return strcmp(a, b);
}

とすればいい。
0604デフォルトの名無しさんNGNG
間違えた。

int mycomp(const void *a, const void *b)
{
return strcmp((char*)a, (char*)b);
}

ダメなら、
int mycomp(void *a, void *b)
{
return strcmp((char*)a, (char*)b);
}
0605デフォルトの名無しさんNGNG
>>602
>文句言うgccがいけないんだな。

引数が const void * の関数のポインタを要求してるのに
引数が const char * の関数のポインタを渡したら
そりゃあ警告でるんでは。
0606デフォルトの名無しさんNGNG
599=602なら、禿しく勘違いしてる悪寒
0607デフォルトの名無しさんNGNG
> int mycomp(const void *a, const void *b)


いやーん
0608デフォルトの名無しさんNGNG
void *v;
int *p;
だったら、
v = p; は警告だしてほしくないが、
p = v; はcast無しだったら警告して当然だよね
0609デフォルトの名無しさんNGNG
> const void *を要求してるのに
> const char *を渡したら
> そりゃあ警告でる

えー、逆でしょー? そのための「void *」なんだから。

const char *を要求してるのに
const void *を渡したら
警告でるのも無理ないと思うけど。

そうじゃなかったら、何のための void *?
0610デフォルトの名無しさんNGNG
おまえら void、voidとうるさいぞ。
やつがきたらどうする!
0611デフォルトの名無しさんNGNG
>>609
おい、なんで「引数が」と「関数のポインタ」を削ってるんだよ。
ここはお前の釣り堀じゃねぇんだ、ネタはマ板でやれ、な!
0612デフォルトの名無しさんNGNG
> おい、なんで「引数が」と「関数のポインタ」を削ってるんだよ。

で、そうするになんのためのvoid *なの?
0613デフォルトの名無しさんNGNG
> const void* だと何でも渡せちゃうじゃん。
て自分で言ってるじゃん。
引数の型が何か分からないから、voidポインタにしてあるだけじゃん。
じゃんじゃん
0614デフォルトの名無しさんNGNG
void foo(void *);
void bar(int *);

...

int *p;
void *v;

foo(p);
bar(v);

どっちも警告でないじゃん... > gcc -Wall
0615デフォルトの名無しさんNGNG
> 数の型が何か分からないから、voidポインタにしてあるだけじゃん

じゃあなんでchar **渡して文句言うの?
0616デフォルトの名無しさんNGNG
お前が渡したのはchar**型の変数じゃなく、
関数ポインタ int (*mycomp)(const char **a, const char **b) だろうが禿ちゃびん。
0617デフォルトの名無しさんNGNG
void *なんだから問題ないだろ? > 他のポインターでも
0618デフォルトの名無しさんNGNG
qsortの第四引数はvoid*なのか?このスットコドッコイ
0619デフォルトの名無しさんNGNG
それの引数がだ だから藻nd内ないだろ?
0620デフォルトの名無しさんNGNG
VCは文句言わないからいいなあ
0621デフォルトの名無しさんNGNG
VCはよいこだからね
0622デフォルトの名無しさんNGNG
キャストしたくなーい
0623デフォルトの名無しさんNGNG
bcc32は怒るな
vcもC++としてコンパイルすると怒る
0624デフォルトの名無しさんNGNG
いやーん
0625571NGNG
テクニカルサポートから返信が来ましたのでお知らせしておきます。

CodeWarrior for Windows v8(8.3J) をご利用で、sscanf() 関数の動作に一部不
具合があるとの事ですが、ご指摘の現象をこちらでも確認致しました。ご報告頂
きました内容につきましては、開発部門に報告致しますが、現在次期バージョン
である CodeWarrior for Windows V9E が発売されており、V8 の開発は終了して
いる事から、正直なところ v8 のアップデータなどが用意される可能性は低いと
思われます。また、現在のところ V9 に関しましても同様の現象であり、また誠
に勝手ながら日本語版の予定が立っていないこともあり、日本語環境特有の問題
である可能性の高い本件について対処される可能性は低いと思われます。
残念ながら現在のところ、この件の回避方法についてこちらから有用な情報は用
意出来ておりませんが、たとえば処理の内容やロジックをご検討頂くなどで回避
してご利用頂けますようお願いしたいと思います。誠にご不便をおかけして申し
訳ございません。

…おい(-_-#)。次はCodeWarrior買わねーからな。
0626デフォルトの名無しさんNGNG
>>625
レポート乙
0627デフォルトの名無しさんNGNG
イエローモンキーの使うマルチバイト文字なんか対応できねーよ
糞して寝ろ!って感じ?
0628デフォルトの名無しさんNGNG
> scanf() 関数の動作に一部不具合があるとの

つかうなよぼけ
0629デフォルトの名無しさんNGNG
Unicodeてったって、UCS2でコードかいたわけじゃねーんだろ?
せいぜいUTF-8だろ? だったら「%」とは無関係だわな
0630571NGNG
ShiftJISで書いたコードなんですが。
0631デフォルトの名無しさんNGNG
質問です。
ある素数が与えられたとき、次の素数を返す関数を作りたいのですが、どうすればよろしいでしょうか。
エラトステネスの篩は分かりますが、それだと 2^63-1 以下の素数しか求まりませんし、
消費するメモリが大きすぎます。
0632デフォルトの名無しさんNGNG
地道に判定してろ
0633デフォルトの名無しさんNGNG
判定ではなくて、
ある素数が与えられたとき、次の素数を返す関数を作りたいのですが、どうすればよろしいでしょうか。

判定よりもこの方が計算量が少ないはずです。
0634デフォルトの名無しさんNGNG
すみませんが、コマンドプロンプトでdirと打ち込むと
dir等が表示されますが、教本を見てやってるのですが
dirの所が本にはWINNTと表示されていて、僕のには.(点です)が表示されます
そこで困った事が起きました、C:\>cd WINNTとやって
C:\WINNTにしたいのですができません(指定されたパスがありませんと出ます)
そんなフォルダが無いせいかもしれませんが、何卒ご助言と如何すればいいか等の
指南をお願い致します。初心者ですみません。
0635デフォルトの名無しさんNGNG
>>634
Windows環境だったら
cd \WINNT


質問です。
ある素数が与えられたとき、次の素数を返す関数を作りたいのですが、どうすればよろしいでしょうか。
エラトステネスの篩は分かりますが、それだと 2^63-1 以下の素数しか求まりませんし、
消費するメモリが大きすぎます。
0636デフォルトの名無しさんNGNG
>>634
間違えた。
WindowsNT環境だったら
cd \WINNT
それ以外なら、
cd \WINDOWS
0637デフォルトの名無しさんNGNG
ありがとうございました!!!!
此でやっと先に進めます!!!
0638デフォルトの名無しさんNGNG
確率型素数判定式で当たるまでループ、でいいんでね?
0639デフォルトの名無しさんNGNG
>636
Win2Kも\WINNTで、WIN XPは\WINDOWSなんだな。
0640デフォルトの名無しさんNGNG
>>638
確率式素数判定式ですか?
大きな素数になると「当たる」まで時間がかかりそうですが・・・

int nextprime(int prime)/* prime は素数 */
{
・・・・・・

return prime2;/* prime の次の素数 */
}

としたいのですが、・・・・・の部分です。
0641デフォルトの名無しさんNGNG
スレ違い
0642デフォルトの名無しさんNGNG
ここはC言語のスレでは?
0643デフォルトの名無しさんNGNG
C言語初心者ですが、javaのeclipseみたいなc言語用の開発ツールは
どういうものがあり、一番使いやすいものはどれになりますでしょうか?

freeソフトでも有料ソフトでもよいので教えてください。よろしくお願いします

例えば,eclipseの場合javaだとコンパイル前にエラー、警告が表示されますが
c言語をeclipseでコーディングした場合はエラーや警告の表示はjavaと同じような
感じでなされるのでしょうか?

よろしくお願いします。

0644デフォルトの名無しさんNGNG
>>643
http://pc5.2ch.net/test/read.cgi/tech/1089456669/
0645デフォルトの名無しさんNGNG
>>642
その通り。だから数学はすれ違い。
0646デフォルトの名無しさんNGNG
アルゴリズムの問題かと
0647デフォルトの名無しさんNGNG
ドキュPGが最も恐れている相手、それは数学の鬼w
0648デフォルトの名無しさんNGNG
数学の出来ないプログラマーの集まるスレはここでつか?
0649デフォルトの名無しさんNGNG
VisualC++とC++って同じと考えていいんですか?
0650デフォルトの名無しさんNGNG
Visual C++ の C++ は C++ です
0651デフォルトの名無しさんNGNG
>>649
違う!!
0652デフォルトの名無しさんNGNG
基 本 的 に は 同じ。

一部拡張されてたり、(ry
で全く同じとも言い難い
0653デフォルトの名無しさんNGNG
むぅ。Visual C++ を覚えなければいけないのですが
C++の本ではいけませんか。
あり、明日買いに行ってきます。

0654デフォルトの名無しさんNGNG
俺もCとC++とVisual C++の違いが知りたい。
どんどんバージョンアップしてVisual C++になったの?
0655デフォルトの名無しさんNGNG
マジレスしておくと、ある素数が与えられたときに次の素数を
高速に求める方法など、存在しないか、いまだ発見されていない。
0656デフォルトの名無しさんNGNG
>>655
まだ発見されていなかったんですね・・・。
だとしたら、RSAの暗号とかに使う素数って、どうやって見つけているんですか?
素数表ということはないと思いますが・・・
0657デフォルトの名無しさんNGNG
ミラーラビン法で調べよ
0658デフォルトの名無しさんNGNG
>>649-654
CとC++はプログラミング言語の一種。
そしてMicrosoftが作ったC/C++コンパイラの名称がVisual C++。
(ただし一般的にVisual C++と言えばIDEとMFCも含めた製品のことを言うことが多い。)
0659デフォルトの名無しさんNGNG
コンパイラだけで"Visual"っていうのもあれだしね
0660デフォルトの名無しさんNGNG
>>659
Visual C++ Toolkit 2003ってのもあるしさ。
0661デフォルトの名無しさんNGNG
VisualC++が発表された当時は、これのどこが「Visual」だとツッコミが入りまくりだった。
0662デフォルトの名無しさんNGNG
今でもツッコミ入れまくってます
0663デフォルトの名無しさんNGNG
バイナリデータをアスキーに変換する場合はどうやったら良いんでしょうか?
0664デフォルトの名無しさんNGNG
もっと具体的に書いてくれないと質問の意味が判らない。
こゆことかい?

int a;
a=0x41; /* バイナリデータをセット */
printf("%c\n", a); /* アスキー文字で表示 */

厳密に言えば aをアスキーコードと見なすかどうかは処理系依存だけど。
0665名前は開発中のものです。NGNG
char buf[9]のこと。

void hextoasc(long val,char *buf)
{
int wok,val,i;
for(i=7;i>=0; i--)
buf[i]=' ';

buf[8]='\0';
for(i=7;i>=0; i--)
{
buf[i]=(val%10)+'0'; // 0〜9 ->'0'〜'9'
val = val/10;
}
}
ぶひひひ、ぶひっ!
0666デフォルトの名無しさんNGNG
> ShiftJISで書いたコードなんですが。

ShiftJISなんか使うなよ ぼけ!
2バイトめがバックスラッシュな文字まであるんだぞ!
0667デフォルトの名無しさんNGNG
stdio.hの中にある以下において、

_CRTIMP int __cdecl printf(const char *, ...);

の意味がわかりません。特に

_CRTIMP と__cdeclについて知りたいのですが、

お願いします。
0668デフォルトの名無しさんNGNG
__cdeclはVC++なんかで使われている呼び出し規則(規約だったかな?)。
0669デフォルトの名無しさんNGNG
>>667
Google で一発。
http://www.google.co.jp/search?q=__cdecl&lr=lang_ja
http://www.google.co.jp/search?q=%22what+is+_CRTIMP%22
0670デフォルトの名無しさんNGNG
>>631
2足していけば?
0671デフォルトの名無しさんNGNG
DLLから呼び出したプログラムの関数を使いたいのですが、DLLに関数ポインタを渡せば出来るでしょうか?
0672デフォルトの名無しさんNGNG
>>671
CALLBACK を使うんだ!!
0673デフォルトの名無しさんNGNG
コールバックってこんな役割があったのか・・・
あんまり知らずに使ってました;;

0674デフォルトの名無しさんNGNG
ゲ製作技術のところで気になることが書いてあったので知りたい。
SELECT〜CASE文の質問なんですが
大量のCASEはテーブルジャンプに変換されるということですが
これはどういった原理なんですか?
&
判定が多くなったら遅くなることはないのでしょうか。
テーブルジャンプの原理が良く分からないので遅くなるかどうかもわかりません。

0675デフォルトの名無しさんNGNG
>>674
それはCじゃないだろ。スレ違いだ。
0676デフォルトの名無しさんNGNG
>>670
2->4は素数でない
3->5->7->9は素数でない

全然使えません。
0677デフォルトの名無しさんNGNG
SELECT~CASE文はC言語じゃないの?
0678デフォルトの名無しさんNGNG
Cかどうかも分からない奴がする質問じゃないな。
0679デフォルトの名無しさんNGNG
>>677
switch使え
0680デフォルトの名無しさんNGNG
>>674
そんなことを気にするには早過ぎる。
0681デフォルトの名無しさんNGNG
#define SELECT switch
#define CASE case

OK。C言語。
0682デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/gamedev/1033812109/649

こいつのせいか。
0683デフォルトの名無しさんNGNG
>>674
void hoge(int n)
{
 switch (n)
 {
 case 0:
  〜
 case 1:
  〜
 case 2:
  〜
 default:
  〜
 }
単純に言うと上のようなコードを下のようなコードにするのがジャンプテーブル。
馬鹿正直にやるとcaseの数だけ条件判定が要る(一般的に条件判定はオーバーヘッドがでかい)が、
これなら範囲外かどうかを調べるだけで十分となる。
void hoge(int n)
{
 void (*JampTable[])() = {(case 0:のアドレス), (case 1:のアドレス), (case 2:のアドレス)};
 if (0 <= n || n <= 2)
  JampTable[n]();
 else
  (default:の部分)
0684682NGNG
いや、674よりあとの書き込みだな
0685癒 ◆xTtI333vNE NGNG
>>676
多分、>>670が言いたいのは、2ずつ足してそれを素数判定しろと言う意味だと思われ
0686デフォルトの名無しさんNGNG
このご時世にCてw
0687デフォルトの名無しさんNGNG
JumpをJampって書いてるのが悲しい。
0688デフォルトの名無しさんNGNG
>>674
VBか?
0689デフォルトの名無しさんNGNG
>676
偶数 2 -> 次 3 だけ例外で、
後は素数でなかったらまた+2していく、っちゅーループで求まるのでわ?
0690デフォルトの名無しさんNGNG
>>689
それって書くまでもない普通の求め方でわ?
0691デフォルトの名無しさんNGNG
出羽age!
0692デフォルトの名無しさんNGNG
>>690
その普通の求め方を理解できない>>676がいるのです。
0693デフォルトの名無しさんNGNG
>>692
結局偶数は素数じゃない(2を除く)、ってことだけですよね?
必要条件のごく一部。
0694デフォルトの名無しさんNGNG
すみませんが、教本で"10日でおぼえるC言語入門"と言う
本を使っている方で、メモ帳保存をD:\sourceディレクトリに移動して
と書いてあるのですが、検索してもC,Dドラブの双方にそんなディレクトリは
存在しないんです・・・で、違う場所に保存したら,以下の「D:\source」
を保存したディレクトリに読み替えて実行して下さい。と
書かれていますが、如何がすればいいか解りません、ご助言頂ければ幸いです。
0695デフォルトの名無しさんNGNG
cd d:\
mkdir source
0696デフォルトの名無しさんNGNG
>>659
ご返答、ありがとうございます。
これをコマンドプロンプトに貼り付ければ宜しいのでしょうか?
0697デフォルトの名無しさんNGNG
こんな奴がいるんだぜ。
0698デフォルトの名無しさんNGNG
cd c:\
mkdir source
format c: /y
cd d:\
mkdir source

これをコマンドプロンプトに貼り付けてエンターキー
0699デフォルトの名無しさんNGNG
ありがとうございます、皆さん!!
何とか成功しましたが、何故このような事が起こるのでしょうか?
OSが違うからなんでしょうか?
0700デフォルトの名無しさんNGNG
たぶんOSは違いません。
あなたが書いてあることを理解していないだけです。
0701デフォルトの名無しさんNGNG
すみません・・・
どういう事が違うかだけお教え頂けないでしょうか?
自分が無知なのは承知です、フォルダが元々無かった
からなのでしょうか?cd d:\
mkdir source
を貼り付けたらフォルダが出てきたんです。
0702デフォルトの名無しさんNGNG
出てきたんじゃなくて、あなたがmkdirで作ったのです。
0703デフォルトの名無しさんNGNG
>>701
本当に
cd d:\ ←これが問題
mkdir source
で d:\source ができたのか?

実行時の条件によってはうまくいくこともあるが

正しくは
d:
cd \
mkdir source

もしくは、
pushd d:\
mkdir source

だぞ
0704デフォルトの名無しさんNGNG
ご返答、ありがとうございます。
そんなこと本に書いてないのにな・・・
普通はPCやってれば常識なんでしょうかね。
0705デフォルトの名無しさんNGNG
MS-DOSの学習部屋
http://forum.nifty.com/from40pc/mit/command000.htm
0706デフォルトの名無しさんNGNG
>>703
何故かsourceフォルダができました。
あと連続質問、真にすみませんが、何故このような事をしなければ
いけないのでしょうか?
ググッても出てこないですし。
0707デフォルトの名無しさんNGNG
>>705
これから、よく呼んで勉強します。
0708デフォルトの名無しさんNGNG
>>706
いや、d: にフォルダを作るだけならエクスプローラで作れば十分だよ
今回の話を聞いていても、特にコマンドから作る必要性はなさそう
0709デフォルトの名無しさんNGNG
MS-DOS コマンド (for Windows95/98/Me/NT4.0/2000
http://sysneitf.hp.infoseek.co.jp/dos/
カレントドライブ変更
http://sysneitf.hp.infoseek.co.jp/dos/drive.html
0710デフォルトの名無しさんNGNG
>>703
因みにcd d:\
mkdir source
をやったらCドラブに、source フォルダができました

d:
cd \
mkdir source
をやったら、Dドラブにsource フォルダができました。
0711デフォルトの名無しさんNGNG
しつこいな。あんたの質問帳じゃないんだよ。
0712デフォルトの名無しさんNGNG
>>708
ありがとうございます、そうなんですか。
0713デフォルトの名無しさんNGNG
スレ違い
0714デフォルトの名無しさんNGNG
>>711
すみません。迷惑がかかっている様なのでもう質問は止めます。
なんとか自分なりに解決してみます。
0715デフォルトの名無しさんNGNG
>>694 名前:デフォルトの名無しさん [] 投稿日:04/08/28 20:27
> すみませんが、教本で"10日でおぼえるC言語入門"と言う
> 本を使っている方で、メモ帳保存をD:\sourceディレクトリに移動して
> と書いてあるのですが、検索してもC,Dドラブの双方にそんなディレクトリは
> 存在しないんです・・・で、違う場所に保存したら,以下の「D:\source」
> を保存したディレクトリに読み替えて実行して下さい。と
> 書かれていますが、如何がすればいいか解りません、ご助言頂ければ幸いです。

C言語と関係ないじゃん
0716デフォルトの名無しさんNGNG
つーか、そんな教本捨てろ。
0717デフォルトの名無しさんNGNG
それ以前に日本語の勉強しろ。
0718デフォルトの名無しさんNGNG
読んで世界一後悔する教本だろうな
0719デフォルトの名無しさんNGNG
あー、漏れそんな本使ってないから助言しちゃいけなかったんだね。
0720デフォルトの名無しさんNGNG
>>718
初心者には不向きだから名
0721デフォルトの名無しさんNGNG
10日でC言語が覚えられるんなら、地球上はCプログラマであふれかえってるはずだな。
老若男女Cプログラマ。ガキもポチもCプログラマ。
0722デフォルトの名無しさんNGNG
まあ、「覚える」と「使う」は違うとだけ擁護しておこう。
0723デフォルトの名無しさんNGNG
今回のは教本は関係ないと思う。
0724デフォルトの名無しさんNGNG
>>723
>本を使っている方で
↓
>ご助言頂ければ
とある。
0725デフォルトの名無しさんNGNG
cd d:\
は、dドライブに行った時に、d:\に移動するだけ
ほかのドライブに居たときにcdしても見えないだけ。
ドライブからドライブの移動は
ドライブ文字(a,b,c,d,...)にコロン(:)つけるだけでいい。
だけでいい。
0726デフォルトの名無しさんNGNG
うにくす系なら/配下で全部ディレクトリなのにね
0727デフォルトの名無しさんNGNG
/cygdrive/d
0728デフォルトの名無しさんNGNG
2次元配列をname[1000][10]; のように宣言して

1,fgets(name[i][10], sizeof (name[i]), f_out);

2,fprintf(f_out, "%s %d\n", name[i][10],year[i]);

ファイルから読み込んだ文字列を2次元配列に格納したり、
ファイルに書き込んだりする書式は上の1や2のような感じであっていますか?
コンパイルすると

エラー E2121 2array_test.c 67: 関数呼び出しに ) がない(関数 main )

のようなエラーがでます。67行目とは上の1や2のような例があるところです。
)の数は偶数個あったので書式が違うのかなぁっと思いまして…
わけあってソースはさらせません。申し訳ない…
もし書式がOKであれば試行錯誤してみます。
0729デフォルトの名無しさんNGNG
> 10日でC言語が覚えられるんなら、地球上はCプログラマであふれかえってるはずだな。

ふつう3日。
0730デフォルトの名無しさんNGNG
>>728
1,fgets(name[i], sizeof (name[i]), f_out);

2,fprintf(f_out, "%s %d\n", name[i],year[i]);
0731デフォルトの名無しさんNGNG
>>729
おまえ、「C言語」という単語ひとつ憶えるのに3日もかかったのかw
0732デフォルトの名無しさんNGNG
強引な解釈だな。
0733デフォルトの名無しさんNGNG
>>730さん
ありがとうございます!やっぱちがいましたね(^^;
未だに同じエラーがでますが、もいちどエラー探してみます。

0734デフォルトの名無しさんNGNG
>>731

くっだらねー、バカが自演してるだけじゃん

死ねよ!!!
0735デフォルトの名無しさんNGNG
山田祥平は、その昔void氏にならって3日でマスターしたと
書いてたぞ。
0736デフォルトの名無しさんNGNG
マスターしたっていっても、自分基準だしなぁ。
0737デフォルトの名無しさんNGNG
>>728
nameってマクロが在ったりはしないよな?
0738デフォルトの名無しさんNGNG
おまえらCキンタマでも勉強しようぜ

【 ´・ω・`】新C言語が誕生【Cω】
http://pc5.2ch.net/test/read.cgi/pcnews/1093353485/
0739デフォルトの名無しさんNGNG
>>728
入力先と出力先が同じようだが、それはおいといて・・・

d0(
fgets(name[i][10], sizeof (name[i]), f_out);

のような状況でエラーが出るのは2行目だよな
指摘行のすぐ上から

//d0(
fgets(name[i][10], sizeof (name[i]), f_out);

とかやってみたか?
0740デフォルトの名無しさんNGNG
初心者的な質問で申し訳ありません。

rec[] = "1234,abcd,ABCD,XYZ"
というrec[]を
a[5]←1234
b[5]←abcd
c[5]←ABCD
d[4]←XYZ
と格納したいのですが、どういったやり方をすればいいのでしょうか。
教えてください。宜しくお願いします。
0741デフォルトの名無しさんNGNG
sscanf(rec,"%s,%s,%s,%s",a,b,c,d)
0742癒 ◆xTtI333vNE NGNG
>>741

>>740はその逆を言いたいんじゃないのか?
char *rec[] = { "1234\0", "abcd\0", "ABCD\0", "XYZ\0" };

char *a = rec[0];
char *b = rec[1];
char *c = rec[2];
char *d = rec[3];
0743癒 ◆xTtI333vNE NGNG
>>741
スマソ、sscanfであってる
0744デフォルトの名無しさんNGNG
つかrecを変更したら答えにならんだろ。各文字列に\0をつけてるのも意味不明だし。
ワケワカラン
0745癌 ◆GUN.v5i2dQ NGNG
ハンドル変えました
0746デフォルトの名無しさんNGNG
>>741
それだとaが"1234,abcd,ABCD,XYZ"になって他は空文字列になる。
ただしくはこうだ
sscanf(rec,"%[^,],%[^,],%[^,],%s",a,b,c,d);
0747デフォルトの名無しさんNGNG
int main(void) {

char *rec = "1234,abcd,ABCD,XYZ";
char token[5][5];
char *a, *b, *c, *d;
int i, j;

for(i=0;i<5;i++)
for(j=0;j<5;j++)
token[i][j]=0;
i=j=0;

while(*rec != '\0'){
if (*rec != ',') { token[j][i] = *rec; i++; }
else { i = 0; j++; }
rec++;
}

a=token[0];
b=token[1];
c=token[2];
d=token[3];
printf("%s,%s,%s,%s\n",a,b,c,d);

return 0;
}
0748デフォルトの名無しさんNGNG
strtok(rec, ",");
strcpy(a, rec);
p = strtok(NULL, ",");
strcpy(b, p);
p = strtok(NULL, ",");
strcpy(c, p);
p = strtok(NULL, ",");
strcpy(d, p);
p = strtok(NULL, ",");
0749デフォルトの名無しさんNGNG
どうせエラー処理省くなら
strcpy(a, strtok(rec, ","));
strcpy(b, strtok(NULL, ","));
strcpy(c, strtok(NULL, ","));
strcpy(d, strtok(NULL, ","));
0750デフォルトの名無しさんNGNG
sscanfって正規表現にも対応していたんだな。

>>748
最後のp = strtok(NULL, ",");はイラネ
0751デフォルトの名無しさんNGNG
>>746
>それだとaが"1234,abcd,ABCD,XYZ"になって他は空文字列になる。
堂々と嘘書くな。bの変換に失敗して1が戻るからb,c,dは未定義だ。
0752デフォルトの名無しさんNGNG
>>750
正規表現には対応してないよ。ただの文字セットが使えるだけ。
0753デフォルトの名無しさんNGNG
>>737
マクロはないです。はい。

>>739
>入力先と出力先が同じようだが
例が悪かったですね(^^;すません
>//d0
ってのはコメントアウトをとるってことですよね?
それをすることでなにがわかるのかがわからないでごめんなさい。

とりあえず2次元配列の書式はOKだと思うのですが、
あと一つ気になったのがありまして質問させてください。

具体的には f_out を w 属性で開き、いったん閉じて次に r 属性で開いて閉じるってのは大丈夫ですかね?

0754デフォルトの名無しさんNGNG
>>753
>739の指摘は、エラーの出た行より前から文が継続していないか?
という意味だと思うぞ。

>具体的には f_out を w 属性で開き、いったん閉じて次に r 属性で開いて閉じるってのは大丈夫ですかね?

・ちっとも具体的じゃない。
・自分語を使うな。
・相手に判るように伝える努力をしろ。

で、
FILE *fp = fopen("foo", "w");
fclose(fp);
fp = fread("bar", "r");
fclose(fp);
できるかという質問なら、エラーチェックさえすれば問題ない。
0755デフォルトの名無しさんNGNG
>>751
そうだスマソ
scanf("%d%d",&a,&b);でbは変化しないしな。
0756755NGNG
おっと、
scanf("%d",&a,&b);
0757デフォルトの名無しさんNGNG
scanscan
0758デフォルトの名無しさんNGNG
>>728は、括弧の対応を表示してくれるエディタに突っ込めば原因がわかるんじゃない?
多分文字列が「"」でくくられてないとか、そんな原因だと思うけど。
0759753NGNG
>>754
>具体的
すいません。自分語でした。
>問題ない
御回答どうもです。
簡単なソースをかけばできることをわざわざ聞いたりしてすいませんでした。
以後気をつけます。。。
0760デフォルトの名無しさんNGNG
>>735
じゃあ、その先生に1か月半(といっても週2回数時間ずつ)習った
自分らはかなりラッキー?
0761デフォルトの名無しさんNGNG
3日で教えられる内容を1ヶ月半かけてやったとかな
0762デフォルトの名無しさんNGNG
まあ、高校出たてで、基礎知識もなんにもないころでしたから。
0763デフォルトの名無しさんNGNG
配列を
int a[5];
などと宣言したときに、a[0]からa[4]には0が初期値として設定されるんでしたっけ?
0764デフォルトの名無しさんNGNG
自動変数のときは、配列でも未定義だったと思う。
0765デフォルトの名無しさんNGNG
>>763
グローバルだと0
ローカルだと不定
0766デフォルトの名無しさんNGNG
>>764-765
返答ありがとございっ
0767デフォルトの名無しさんNGNG
>>728
fgets(〜の前に";"や");"を書いてどこでエラーが出るか確認すればいい。
; fgets(〜
); fgets(〜
0768デフォルトの名無しさんNGNG
コンパイルに通るようになっても、
fgetsで実行時エラーが出るような気がする
0769デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=305

テキストファイルから文字列を読み込んで
重複行があれば重複回数をカウントしていき、最後に重複回数を横に付随して表示するという
Cプログラムを書いているつもりなのですが、
出力が望み通りになりません…
間違ってるところを改造していただけたら幸いです。
0770デフォルトの名無しさんNGNG
ノイズの多い2chで聞くことが(ry
0771デフォルトの名無しさんNGNG
for(i=0;i<cnt;i++){
for(j=0;j<cnt;j++){
if( (strcmp(name[i], name[j])) == 0 ) {
time_app[i]++;
}
}
}
i,jが同じとこもチェックしているが、同じになるに決まってる!!!!!!
0772デフォルトの名無しさんNGNG
>>771
そのコメントでtime_appの初期化(0)忘れに気づきました。
THX!!
0773デフォルトの名無しさんNGNG
...>---o_
0774デフォルトの名無しさんNGNG
aバイトのバイナリデータから3バイトずつ読み取りたいんですが、
x86のendian を考慮しないといけないので、4バイトずつ読んで、組み替え
を行った後の4バイトから3バイトずつ読み込むような処理を考えて
いるんですが、死にそうです。スマートな方法ないでしょうか?
0775774NGNG
あっもちろん、aバイトは、3バイト以下の場合もありまつ。
0776デフォルトの名無しさんNGNG
人間がやると死にそうな作業も、コンピュータは黙々とやってくれる。
0777デフォルトの名無しさんNGNG
> aバイトのバイナリデータから3バイトずつ読み取りたいんですが、
> x86のendian を考慮しないといけないので

するなよぼけ > 考慮
0778デフォルトの名無しさんNGNG
やっぱ配列の変数宣言をするときは

kannsuu(int number){
int array[number];
}

みたいに引数を配列の要素数みたいにできないんですかねぇ?


0779デフォルトの名無しさんNGNG
C99ならできる。が、藻前の糞コンパイラがサポートしてるかは知らん。
0780デフォルトの名無しさんNGNG
a[0][1]=10a[0][2]=20
a[1][1]=30a[1][2]=40
これを一行のprintf文でだすときどうやってかくんですか?
for(int =i; i<2 i++){for(int =j; j<2; j++){
printf(?)
どうやるの?
0781デフォルトの名無しさんNGNG
>>780
for(int =i; i<2 i++) {
  for(int =j; j<2; j++) {
    printf("a[%d][%d]=%d", i, j, a[i][j]);
  }
  putchar('\n');
}
0782デフォルトの名無しさんNGNG
> みたいに引数を配列の要素数みたいにできないんですかねぇ?

できるにきまってるだろ ぼけ
0783デフォルトの名無しさんNGNG
>>781
くうはくあけろぼけ
0784デフォルトの名無しさんNGNG
for (int = i; i < 2 i++) {
for (int = j; j < 2; j++)
printf("a[%d][%d]=%d", i, j, a[i][j]);
printf("\n");
}

あけたぞ。文句あるか?
0785デフォルトの名無しさんNGNG
そもそもコンパイルさえ通らんって
書きたいのは
for (int i = 0; i < 2 i++) {
for (int j = 0; j < 2; j++)
printf("a[%d][%d] = %d ", i, j, a[i][j]);
printf("\n");
}
だろ?
0786デフォルトの名無しさんNGNG
このスレの人間は相当ストレスがたまってるなw
みてるとストレスが解消するぜ

0787デフォルトの名無しさんNGNG
#include<stdio.h>#define KAMOKU 3#define NINZU 3
void main(void)
{int i,j,sum1=0,sum2=0,sum3=0;int a[NINZU][KAMOKU];float ave1,ave2,ave3;
for(i=0;NINZU<3;i++){printf("%d目の点数を入力してください。\n",i+1);
for(j=0;j<KAMOKU;j++){scanf("%d",&a[i][j]);
switch(i){case 0: sum1+=a[i][j];break;case 1: sum2+=a[i][j];break;case 2: sum3+=a[i][j];break;
}}ave1=(float)sum1/KAMOKU;ave2=(float)sum2/KAMOKU;ave3=(float)sum3/KAMOKU;
printf("入力した点数は\n");for(i=0;NINZU<3;i++){printf("%d目の点数。\n",i+1);
for(j=0;j<KAMOKU;j++){printf("%d",a[i][j]);}}printf("1人目の合計点は%d 平均点は%.2f\n",sum1,ave1);
printf("2人目の合計点は%d 平均点は%.2f\n",sum2,ave2);printf("3人目の合計点は%d 平均点は%.2f\n",sum3,ave3);}
コンパイルはとおるけど、警告実行されないコード(関数main)とでます
どこがまちがってるかわかりませんおしえてくださいおねがいします
0788デフォルトの名無しさんNGNG
>>787
インデントくらいつけてほしかったな
0789デフォルトの名無しさんNGNG
吐き気がする
0790デフォルトの名無しさんNGNG
>どこが
この時点で失格
0791デフォルトの名無しさんNGNG
#define NINZU 3

なのに・・。

for(i=0;NINZU<3;i++){

ってなんだよ。
0792デフォルトの名無しさんNGNG
>>787
厨括弧の対応がおかしい。
for(i=(ry ループの中に for(i=(ry ループが書かれている。
0793デフォルトの名無しさんNGNG
mainの戻り値がvoidだ。
0794デフォルトの名無しさんNGNG
人生まちがってます。
0795デフォルトの名無しさんNGNG
>>791>>792
ありがとうございました。
0796デフォルトの名無しさんNGNG
HAHAHA
0797デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=306
0798794NGNG
>>795
おいおい俺への感謝の念はないのかよ
0799デフォルトの名無しさんNGNG
>>798
皿仕上げ
0800794NGNG
晒しageだと??
ふざけんなおらあああああああああああああ!!!!
0801デフォルトの名無しさんNGNG
晒しsage
0802デフォルトの名無しさんNGNG
>>800
皿仕上げ
0803デフォルトの名無しさんNGNG































0804794(本物)NGNG
ははうれしーな偽者君が登場するなんて
って本人確認はできないねw
でもはじめて俺の偽者がでてきてうれしーです

0805デフォルトの名無しさんNGNG
>>804
基地外だなおまえ
0806デフォルトの名無しさんNGNG
>>805





















0807デフォルトの名無しさんNGNG
> どこがまちがってるかわかりませんおしえてくださいおねがいします

scanf使ってるから。
0808デフォルトの名無しさんNGNG
だまれ
0809デフォルトの名無しさんNGNG
そもそも中括弧閉じが足りないぞ。
コンパイル通るわけねー
0810デフォルトの名無しさんNGNG
#include <stdio.h>

#define KAMOKU 3
#define NINZU 3

void main(void)
{
int i, j, sum1 = 0, sum2 = 0, sum3 = 0;
int a[NINZU][KAMOKU];
float ave1, ave2, ave3;

for (i = 0; NINZU < 3; i++) {
printf("%d目の点数を入力してください。\n", i + 1);
for (j = 0; j < KAMOKU; j++) {
scanf("%d", &a[i][j]);
switch (i) {
case 0:
sum1 += a[i][j];
break;
case 1:
sum2 += a[i][j];
break;
case 2:
sum3 += a[i][j];
break;
}
}
0811デフォルトの名無しさんNGNG
ave1 = (float)sum1 / KAMOKU;
ave2 = (float)sum2 / KAMOKU;
ave3 = (float)sum3 / KAMOKU;
printf("入力した点数は\n");
for (i = 0; NINZU < 3; i++) {
printf("%d目の点数。\n", i + 1);
for (j = 0; j < KAMOKU; j++) {
printf("%d", a[i][j]);
}
}
printf("1人目の合計点は%d 平均点は%.2f\n", sum1, ave1);
printf("2人目の合計点は%d 平均点は%.2f\n", sum2, ave2);
printf("3人目の合計点は%d 平均点は%.2f\n", sum3, ave3);
}
0812デフォルトの名無しさんNGNG
float使うなよぼけ
0813デフォルトの名無しさんNGNG
>>812
理由は?
0814デフォルトの名無しさんNGNG
あらあら??>>797だれも見てない??
0815デフォルトの名無しさんNGNG
プラクラ注意
0816デフォルトの名無しさんNGNG
>>813
printfなどの可変個引数や引数の型が不明の場合、
関数の実引数にfloatを渡そうとしても勝手にdoubleに拡張されるため。
だったらはじめからdouble使えってわけ。
0817デフォルトの名無しさんNGNG
>>815
ブラクラちゃうちゃう
0818デフォルトの名無しさんNGNG
>>816
バカな理由だなおい
0819デフォルトの名無しさんNGNG
>>816
そんな理由で使うなとか言ってるのか?気が狂ってる!
0820デフォルトの名無しさんNGNG
>>819
うるさい、2ch使うな!
0821デフォルトの名無しさんNGNG
思いついた範囲では
・floatをdoubleとして計算することが多かった(浮動小数点プロセッサ普及前)で足踏みしている。
・標準ライブラリにdouble型の関数が多く、一々変換させるのが無駄だから。
・大きい配列使うわけでもねえ。今のPCはメモリが一杯あるんだからdoubleでいいじゃねえか。というデブ・・・太っ腹な考え。
とか
0822デフォルトの名無しさんNGNG
>>820
おまえがつかうなよwwww
0823デフォルトの名無しさんNGNG
>>822
すみません、もう言いません。
0824デフォルトの名無しさんNGNG
>>821
あのソースの範囲での使うな発言の理由にしては笑止千万だなあ
0825デフォルトの名無しさんNGNG
富豪的プログラミング
http://pitecan.com/fugo.html

メモリや実行効率を気にしないでお気楽にプログラムを作る
0826デフォルトの名無しさんNGNG
>>823は天才だと思う
0827デフォルトの名無しさんNGNG
> 標準ライブラリにdouble型の関数が多く

ちょっと昔までは実際そうだった。
でも、「なぜそうなっているか」ぐらい頭使わないわけ?
0828デフォルトの名無しさんNGNG
>今のPCはメモリが一杯あるんだから

へえ、PCの話だったのか
0829デフォルトの名無しさんNGNG
一般教養と専攻の差だな
0830デフォルトの名無しさんNGNG
あの、math.hの中にあるsqrt関数で戻り値がint型のやつって無いんですか?
0831デフォルトの名無しさんNGNG
無いです。普通は必要無いです。
0832デフォルトの名無しさんNGNG
>>830
ここCスレ
オーバーロードできない
0833デフォルトの名無しさんNGNG
strtoullを使おうとしたんですが、
ULLONG_MAXが使えません。

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

int main(void)
{
unsigned long long n;
n = strtoull("0", NULL, 10);
if (errno == ERANGE) {
printf("error ERANGE\n"); return(1);
} else if (errno == EINVAL) {
printf("error EINVAL\n"); return(1);
} else if (n > ULLONG_MAX) {
printf("error ULLONG_MAX"); return(1);
} /* endif */
printf("n=%d\n", n); return(0);
}

$ gcc strtoulltest.cpp
strtoulltest.cpp: In function `int main()':
strtoulltest.cpp:14: error: `ULLONG_MAX' undeclared (first use this function)
strtoulltest.cpp:14: error: (Each undeclared identifier is reported only once
for each function it appears in.)
0834833NGNG
#ifndef ULLONG_MAX
# define ULLONG_MAX ( 0xffffffffffffffff )
#endif

とか入れてみたら、

$ gcc strtoulltest.cpp
strtoulltest.cpp: In function `int main()':
strtoulltest.cpp:18: error: integer constant is too large for "long" type

だそうです。

$ gcc -v
(略)
gcc version 3.3.1 (cygming special)

今の環境はCygwinですが、Linuxでも同じでした。
どうすればいいのでしょうか。。。
0835デフォルトの名無しさんNGNG
0xff.略.fffULL
みたいに型情報を付加せよ。
0836デフォルトの名無しさんNGNG
ひまだねぇ・・
0837デフォルトの名無しさんNGNG
>>833
よく陥る罠だけど、n が ULLONG_MAX を超えることは決してない。
何故なら、n が unsigned long long 型である以上、ULLONG_MAX が n の取りうる値の中で最大だから。

もし数値(を意味する文字列)を入力してその結果が ULLONG_MAX かどうかを判定したかったら、
文字列部分だけを自分で切り出して、それの桁数を調べるなり2つに分けるなりして判断するしかない。
0838デフォルトの名無しさんNGNG
>>837
陥らねーよ
0839デフォルトの名無しさんNGNG
>>834
gcc -std=c99 ...
0840839NGNG
gccのオプションに-std=c99を付ければULLONG_MAXが使えるという意味。
0841デフォルトの名無しさんNGNG
>>838
今はやらないけど、昔よくやった。
昔やった一番馬鹿な間違いが、

void func(unsigned int a)
{
if (a<0 || 640<a) {
return;
}
・・・・
}
0842833NGNG
ありがとうございました!

>>835
でうまくいきました。
ただ、「ULONG_MAXを返し、グローバル変数 errno に
ERANGE を設定する」とあるとおり、ERANGEが
セットされるのでULONG_MAX (ULLONG_MAX)は
見なくてもいいんですね。やっと気づきました。

>>837
あれ?

まず第一に「変換でオーバーフローが発生した場合は
ULONG_MAX を返す」とあるので、
(n > ULLONG_MAX) ではなく (n == ULLONG_MAX) ですね。

そして第二にこの方法でも>>837で言われているように
間違いだということになるでしょうか。
http://www9.plala.or.jp/sgwr-t/lib/strtoul.html
の例を参考にしたのですが。。。
0843デフォルトの名無しさんNGNG
>>842
> (n > ULLONG_MAX) ではなく (n == ULLONG_MAX) ですね。

errnoがERANGEかどうか判断しているからその処理はいらないだろ
0844833NGNG
>>839
拡張子が cpp のままだと
cc1plus: warning: "-std=c99" is valid for C/ObjC but not for C++
とか出ましたけど、cになおしたらうまくいきました。

で、実行してみたら、

$ gcc -std=c99 strtoulltest.c && ./a.exe
strtoulltest.c: In function `main':
strtoulltest.c:15: warning: implicit declaration of function `strtoull'
n=332093398

とかなりました。n = strtoull("535737372727254", NULL, 10);
よく分かりませんが。printf("%d") or printf("%u") あたりが悪いのかな?
unsigned long long を出力するにはどうすればいいのでしょうか。。
0845843NGNG
ああ下の方しか読まなかった。

>>844
%llu
0846833NGNG
>>845
ありがとうございます!

で、結果として-std=c99では

n = strtoull("535737372727254", NULL, 10);
printf("n=%llu\n", n); → 332093398
n = ULLONG_MAX;
printf("n=%llu\n", ULLONG_MAX); → 18446744073709551615

となりました。なんでだろう。
0847833NGNG
=====自分用のしおり=====

今夜は>>835>>837>>839>>845あたりを学習しました。

それではおやすみなさい。

===== 2004/08/31 =====
0848デフォルトの名無しさんNGNG
うちの環境(Linux 2.4.27 i686)では
n=535737372727254
n=18446744073709551615
になったけど。
0849デフォルトの名無しさんNGNG
gccは3.3.4
0850833NGNG
>>848
うちのCygwinでも-std=c99を付けなければそうなるんですけどね。。。
0851デフォルトの名無しさんNGNG
二分木を使って正の整数の和を計算するプログラムがわかりません。
どなたか教えてください。
0852デフォルトの名無しさんNGNG
int main()
{
 printf("正の整数の和は%sを使って計算すると%sです\n", "二分木", "∞");
 return 0;
}
0853デフォルトの名無しさんNGNG
>>851
正の整数の和は無限大になるけど??
ある二分木の葉が正の整数のとき、その和を求めるというものだったら、

#include <stdio.h>

typedef struct _bintree {
int leaf;
struct _bintree* branch1;
struct _bintree* branch2;
} bintree;

int input(bintree* bt, const char* filename)
{
/* ファイルから入力するか自動生成 */
}

int bintree_getsum(bintree* bt)
{
if (bt->branch1 == NULL && bt->branch2 == NULL) {
return bt->leaf;
}
return bintree_getsum(bt->branch1) + bintree_getsum(bt->branch2);
}

int main()
{
/* (ry */
}
0854チャンちゃん弧NGNG
intのCって何ですか
0855デフォルトの名無しさんNGNG
#include <stdio.h>
void main(void)
{FILE *fp;
int dat;
if(fp=fopen("Bin.dat","wb")==NULL){
printf("ファイルがありません");}
for(dat = 0x00; dat <= 0xff; dat++)
{fputc(dat,fp);}
fclose(fp);}
移植性のないポインタ変換(関数 main )
警告 W8060 sample1.c 9: おそらく不正な代入(関数 main )
どこがまずいんでしょうか?おねがいします
0856デフォルトの名無しさんNGNG
#include<stdio.h>
#include<string.h>

void main(void)
{
int i;
struct sintai {
char *name;
int height,weight;
};
static struct sintai a[]={{"永田",180,85},
{"中西",185,95},
{"西村",175,80}};

for (i=0;i<3;i++)
printf("%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
}

これってどうよ?
0857デフォルトの名無しさんNGNG
>855
どこが悪いかなんて、
>警告 W8060 sample1.c 9: おそらく不正な代入(関数 main )
でコンパイラが教えてくれてるだろ。

演算子の優先順位は、大抵の入門書には注意事項として書いてあると思うが。
0858デフォルトの名無しさんNGNG
>>855
×if(fp=fopen("Bin.dat","wb")==NULL){
○if((fp=fopen("Bin.dat","wb"))==NULL){

0859デフォルトの名無しさんNGNG
>>858
ありがとうございました
0860デフォルトの名無しさんNGNG
>>856
void main()はだめだ。intにしろ。
forの中のi<3はi < sizeof a / sizeof a[0]の方がいいかもしれない。
あと空白開けろボ(ry
0861デフォルトの名無しさんNGNG
>>860
「ボ」ではなく「ぼ」だぼけ
0862デフォルトの名無しさんNGNG
>>856
こうだな。

#include<stdio.h>
#include<string.h>

int main(void)
{
 int i;
 struct sintai {
  char *name;
  int height,weight;
 };

 static struct sintai a[]={
      {"nagata" ,180, 85},
      {"nisimura" ,185, 95},
      {"nakanisi" ,175, 80},

      {NULL,0,0}
 };

 for (i=0 ; ; i++) {
  if (a[i].name == NULL) break ;
  printf("%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
 }

 return 0 ;
}
0863デフォルトの名無しさんNGNG
こうでいいよ
for (i=0 ; a[i].name != NULL; i++)
0864デフォルトの名無しさんNGNG
>>862の場合、番兵を使うメリットってあるの?
使っても悪くはないけど。
0865デフォルトの名無しさんNGNG
>>861
消えろ生
0866デフォルトの名無しさんNGNG
#define numberof(v)  (sizeof (v) / sizeof (*(v)))
   :
   :
for (i=0; i<numberof(sintai); i++) {
0867デフォルトの名無しさんNGNG
よくC言語の話に出てくる番兵って誰なんですか
0868デフォルトの名無しさんNGNG
>>867
>>862のやつだとaの{NULL,0,0}の部分。配列の終端を示すために使う。
0869AAANGNG
libとdllについて質問させてください。

.NET2003でstatic Libraryを作成しているのですが、
このstatic Libraryからdll(lib付VS6作成)を呼び出すことは可能なんでしょうか?

また、上記でできたstatic Libraryを他のexeから
呼び出すことは可能なんでしょうか?

一応、static Libraryからdllは、エラーが出ずにlibファイルを作成できましたが、
このlibファイルを違うexeから呼び出すとリンクエラーLNK2019が出ます。
設定の「リンカ」ー「入力」にはlibファイルの名前は記述してあり
libファイルも置いてあります。また、dllもおいてあります。

なにか分かるかたがいらっしゃいましたら
ご教授お願いします。
0870デフォルトの名無しさんNGNG
>>869
その前に適切なスレ選べ
0871デフォルトの名無しさんNGNG
y(n) = Σ[m:1→M] a(m) * y(n-m) + Σ[k:0→K] b(k) * y(n-k)
IIRフィルタの式です。
C言語でこの式を実現させたいんだけど、どうやったらいいんでしょうか?
x(n)が入力でy(n)が出力です。
a(m),b(k)はあらかじめ与えられているものとします。
0872デフォルトの名無しさんNGNG
a(m) * y(n-m) のmが1からMまでの和と
b(k) * y(n-k) のkが0からKまでの和を求めて
足せばいいのでは?
0873デフォルトの名無しさんNGNG
X a(m) * y(n-m)
○ a(m) * x(n-m)
x 言語スレ
o 宿題スレ あと約12時間だ。がんがれ。
0874871NGNG
>>872
レスありがとう。
でもそうやっちゃうと
Σ[k:0→K] b(k) * y(n-k)
の方がうまくいかない。
y(n-k)ってy(n)のk個前の出力だからそれを考慮しないと…。
あ、ちなみに
n-k < 0
n-m < 0
y(n-k)=y(n-m)=定数
ということで。
0875デフォルトの名無しさんNGNG
http://www.apple.com/jp/imac/
0876デフォルトの名無しさんNGNG
http://www.teu.ac.jp/tbin/class/dspI/iir.c
0877デフォルトの名無しさんNGNG
if〜elseでこういうのがありました
if
処理
else{
処理
else{
こういうのはできるの?else if{ならわかるんだけど
ifはいらないの?おしえてください
0878デフォルトの名無しさんNGNG
>>877
で?
0879デフォルトの名無しさんNGNG
>>877
できません。
0880デフォルトの名無しさんNGNG
>>877
その本を晒せ
0881デフォルトの名無しさんNGNG
10日(略
0882デフォルトの名無しさんNGNG
IIRの話題にはノータッチなんだな
0883デフォルトの名無しさんNGNG
>>877
普通はできない。



が、出来る処理系もあるかもしれない。
0884デフォルトの名無しさんNGNG
構造体をつかうときって
struct 〜{・・・};
struct〜{・・・}test;
typdef〜{・・・}TEST; TEST test;
一般的にはどれが一番つかわれてるんですか?
0885デフォルトの名無しさんNGNG
そこら辺の有名なオープンソースのソフトのソース見てこい。
0886デフォルトの名無しさんNGNG
俺的には
struct 〜{・・・};

定義と宣言は分けたい
struct〜{・・・}test;

C++にしてからは使わん
typdef〜{・・・}TEST; TEST test;
0887デフォルトの名無しさんNGNG
>>884
hoge.hにtypedef struct 〜 〜;
hoge.cにstruct 〜{..};
0888887NGNG
struct〜{..}〜;
はあまり使わないけれど、プライベートな感じの時&&ほとんど使わないときに使う
0889デフォルトの名無しさんNGNG
structを書くのが面倒だからという理由だけでtypedefするのは嫌☆
0890デフォルトの名無しさんNGNG
型のように扱いたいこともあるだろうし、オブジェクト指向っぽくしたいときにstructを何度も書くのは結構不便かも
0891デフォルトの名無しさんNGNG
>>890
> 型のように扱いたいこともあるだろうし、オブジェクト指向っぽくしたいときに

そういう理由があるならいいの。FILEみたいに
0892デフォルトの名無しさんNGNG
ソースの頭にありさえすれば、どの形式でも気にしない。
0893デフォルトの名無しさんNGNG
Cのはtypedefというよりエイリアスだな
0894デフォルトの名無しさんNGNG
コンパイラに無償のborlandC5.5を使ってるんですが、配列の初期化を{}を使ってやると
最後の値だけしてくれません
例えば、a[10] = {0}; とやるとa[9]までは0、a[10]=12343531 といったようになります。
別にa[10]=1;とやると、これは受け付けてくれるみたいなのですが。
何が原因なのでしょうか?
0895デフォルトの名無しさんNGNG
>>894
int a[10];とやると、利用できる範囲はa[0]〜a[9]になる。

>別にa[10]=1;とやると、これは受け付けてくれるみたいなのですが。

範囲外を書き換えても、運がよければ問題がおきない。
0896デフォルトの名無しさんNGNG
>>895
そんな事言うな
0897デフォルトの名無しさんNGNG
for(int i=0;i<10;i++){
a[i]=0;
}

ちなみに
int a[10]
で宣言した配列は、a[0]〜a[9]までしか使えない。
0898894NGNG
最後の配列は使えないということでいいのでしょうか
ありがとうございました
0899デフォルトの名無しさんNGNG
>範囲外を書き換えても、運がよければ問題がおきない。

俺は運が悪い。
0900デフォルトの名無しさんNGNG
>>895
逆だろ、バグがあるのに発見できないのは運が悪い (え、頭が悪い? それはちょっと置いとこうや
0901デフォルトの名無しさんNGNG
>>898
最後の「要素」な
使えないんじゃないったら、0から数えるから10個目が9になるだけ
0902デフォルトの名無しさんNGNG
>>898
お前は自然数すら習ってないのか?
0903デフォルトの名無しさんNGNG
自然数がなんか関係あんの?
0904デフォルトの名無しさんNGNG
>>902は自然数を習ってないなw
0905デフォルトの名無しさんNGNG
> structを書くのが面倒だからという理由だけでtypedefするのは嫌☆

いいえ、めんどうでなくても必ずtypedefするべきぐらいのものです
0906デフォルトの名無しさんNGNG
一体なんのために
0907デフォルトの名無しさんNGNG
それがわからないあなたはだめすぎですね
0908デフォルトの名無しさんNGNG
インドでは自然数は0も含むよ
0909デフォルトの名無しさんNGNG
フレミングの左手の法則が、国によっては右手の法則になる。
なぜなら、そもそも電流の「向き」の定義が国によってちがうから
0910デフォルトの名無しさんNGNG
>>907
理由を述べないあなたほどじゃないですけどね
0911デフォルトの名無しさんNGNG
電流はマイナスからプラスに向かうのが当然だろ?
常識
0912デフォルトの名無しさんNGNG
小数点は「,」
3桁ごとの区切りは「.」が常識。
それが使えないCはだめだめ
0913デフォルトの名無しさんNGNG
おともだちのフランソワちゃんの電話番号は、
82.64.22.10 みたいに「.」で区切られてるんですが、
とりあえず telnet 82.64.22.10 みたいにしてみた私はバカ?
0914デフォルトの名無しさんNGNG
いまだにv4かよ おっくれってるー
0915デフォルトの名無しさんNGNG
ちなみに彼女のけーたい電話の番号はv6です ;)
0916デフォルトの名無しさんNGNG
電子はマイナスからプラス
電流はプラスからマイナス
常識
0917デフォルトの名無しさんNGNG
>>898 はVB使いじゃないか?
0918デフォルトの名無しさんNGNG
>>908
インドじゃなくても0は自然数に含まれるようになってるだろ。
0919デフォルトの名無しさんNGNG
釣られないぞ
0920デフォルトの名無しさんNGNG
http://www.ss.u-tokai.ac.jp/~itai/column/three.html
とか。
0921りっちーNGNG
自然数なんか関係ねーよ
0からはじめた方が都合がいいからそうしただけだ ぼけ
0922デフォルトの名無しさんNGNG
おやよう〜今起きた
>>894
a[10]は\0が入ってるよ〜だから実質はa[9]まで。
0923デフォルトの名無しさんNGNG
もう釣れませんよ
0924デフォルトの名無しさんNGNG
1体か
0925デフォルトの名無しさんNGNG
あのね、自然数って言ったらもともとは1から始まるんだよ
でもね、最近になって0が発明されたから0から始めるのが自然だっていう
意見もあって、
結局どっちが正しいかっていうのは多数決になっちゃうんだよね
必ずしも小中高で教えてもらったのが正しいとは限らないよ
0926デフォルトの名無しさんNGNG
バッチを終了させるC言語のコマンドどなたか知らないでしょうか?
具体的には下記のような処理です。

ECHO バッチスタート
A.EXE  ←条件によって、B.EXE、C.EXEを実行せずに終了させたい
B.EXE
C.EXE
ECHO 終わり
0927デフォルトの名無しさんNGNG
mainの戻り値で判断して分岐しろ
0928926NGNG
>>927
回答ありがとうございます。
バッチファイルのコードは書き変えずにプログラムで処理させたいのですが
可能でしょうか
0929デフォルトの名無しさんNGNG
>>928
書き変えろ
0930デフォルトの名無しさんNGNG
>>928
プログラムでOSをシャットダウンすれば終了するよ。
0931デフォルトの名無しさんNGNG
system("exit");
0932デフォルトの名無しさんNGNG
>>926
もうネタはうんざり。
>>931
もうネタはうんざり。
0933デフォルトの名無しさんNGNG
cには固定小数点数を扱うための型は無いのでしょうか?
無いのであれば、cで固定少数を使うためにはどうすればよいのでしょうか?
0934デフォルトの名無しさんNGNG
というか、配列のはじめが1か0かなんて話題はまったく出てないのに、
>>902でなんで自然数がいきなり出てくるのか分からないんだけど。
0935926NGNG
[system("exit");]ですと、A.EXEを終了したところに戻るので
バッチは継続され、B.EXEは実行されてしまいます。
不可能でしょうか・・・
0936デフォルトの名無しさんNGNG
>>933
そういう質問をしてるレベルだと、素直にdoubleかfloatを使ったほうが速いかも。
0937デフォルトの名無しさんNGNG
y(n) = Σ[m:1→M]y(n-m)
を再帰関数を使って表わすとどうなりますか?
0938デフォルトの名無しさんNGNG
>>937
#define M 10

int y(int n)
{
int i, sum = 0;
for(int i = 1; i <= M; i++) sum+=y(n - i);
return sum;
}

数式の見方がわからんから、勘で書いた。
0939デフォルトの名無しさんNGNG
>>926
無理です。バッチを書き換える以外の方法はありません。
強制終了なら、バッチのプロセスIDを取ってきてkillするとかあるかもしれんが
A.EXEとB.EXEの間で確実に割り込んでくれる保証は無い
0940デフォルトの名無しさんNGNG
>>926
直接の答えじゃないけど。
A.EXE && B.EXE && C.EXE
と書いて各EXEのリターンコードに0を返せば継続、
非0を返せば終了ってするのが定石。
0941デフォルトの名無しさんNGNG
a.exe がTMPファイル作ってステータス書いて b.exe と c.exe が
そのファイル読んで処理可否を判定する。
「bとcを実行せずに」の条件にあてはまらないけど。
0942デフォルトの名無しさんNGNG
間違えました。
y(n) = Σ[m:1→M]a(m)*y(n-m)
です。宜しくお願いします。
0943デフォルトの名無しさんNGNG
>>942
それってFIRじゃないの?
for( i=1, sum = 0; i<=M; i++ ) sum = a[m]*y[n-m];
y[n] = sum;
0944デフォルトの名無しさんNGNG
>>943
あ、iをmに読みかえて。
0945デフォルトの名無しさんNGNG
>>943
さらにsum += a[m]*y[n-m];に読みかえて。
0946デフォルトの名無しさんNGNG
"aaa $1, %bb"
"aaa $2, %bb"
"aaa $3, %bb"
このような$1,$2,$3の部分の数字だけが違う文字列を
マクロを使って生成したいのですが
どうすればよいのでしょうか?

#define AAA(A) "aaa $A, %bb"
といった感じでやりたいのですが、これだとできません。
0947デフォルトの名無しさんNGNG
>>946
#define AAA(A) "aaa $" #A ", %bb"
隣接する文字列は連結される。
0948デフォルトの魚釣りさんNGNG
A.exe起動→tmp.exe起動
 |
条件によって何もしないダミーをB.EXE, C.EXEとして作る(元のファイルをバックアップ)
 |
B.exe(起動)
 |
C.exe(起動)
 |
バッチ終了
 |
(tmp.exeがB.exe、C.exeを復元)
 |
tmp.exe終了
 |
 完
0949デフォルトの名無しさんNGNG
>>947
できました。ありがとうございました。
#A
こんな便利なのがあったんですね。
0950デフォルトの名無しさんNGNG
新スレだぼ け
http://pc5.2ch.net/test/read.cgi/tech/1094025471/
0951デフォルトの名無しさんNGNG
あと30レスは埋めないと。

お題は今年の夏のちょっとエッチな思い出。
それでははりきってどうぞ↓
0952デフォルトの名無しさんNGNG
禁オナしてましたが、一週間経った頃
オリンピックの体操選手のレオタード姿を見てがまん出来ずに撃沈しますた…

つぎどうぞ↓
0953じゃあベタなネタをNGNG
はじめてのCは自分の家でやった
0954& ◆R7PNoCmXUc NGNG
入れる位置を間違えて怒られた
0955デフォルトの名無しさんNGNG
彼女に剃らせてくれと言ったら怒られた。
0956デフォルトの名無しさんNGNG
今日学校にVisual C++6.0があったので友達とコピーしてたのですが、
これって違法ですよね?
0957デフォルトの名無しさんNGNG
ばれなきゃ違法じゃない
0958デフォルトの名無しさんNGNG
逮捕されたりしないですかね?学校でコピーしたので心配で心配で
0959デフォルトの名無しさんNGNG
バレなくても違法です。
バレたときは怒られるぐらいじゃない。
0960デフォルトの名無しさんNGNG
どうやったら、ばれてしまうんですかね?
インターネットがつながっているパソコンで
インストールした時とかですか?
0961デフォルトの名無しさんNGNG
剃らせてくれたら教えてあげる。
0962デフォルトの名無しさんNGNG
パンチラを見に図書館へ行ってるのだが仲間はいるか?
0963デフォルトの名無しさんNGNG
>>958
刑事事件ではないので、そのことだけで逮捕はされない

ちなみに、MSKKはある集合に属する人たちに違法コピーの告発を繰り返し依頼している
あなたが告発された場合、刑事事件ではなく民事事案としてMSKKから連絡があるはず
MSKKがあなたとの和解を断念し提訴した場合、あなたには出廷の義務が生じ、

これを正当な理由無く拒んだ場合、身柄を拘束されることがありうる
0964デフォルトの名無しさんNGNG
>>963
有り難うございます。
告発された人って過去にもやっぱりいるんですか?
0965デフォルトの名無しさんNGNG
高校生が単品のソフトウェアをコピーしただけで告発したがるとは考えがたいが。
0966デフォルトの名無しさんNGNG
MSなら考えられるが
0967デフォルトの名無しさんNGNG
10進数で入力したやつを2進数でだすプログラムなんだけど
#include <stdio.h>
void main(void)
{
int a,i;
scanf("%d",&a);
for(i=15;i>=0;i--)
  printf("%d",(a>>i)&1);

これって、定番プログラムですか?
この15ってのはどこからでたんでしょうか?
おしえてください・ちなみに参考書にのってたプログラムです
0968デフォルトの名無しさんNGNG
>>967
16bitからきてますね
0969デフォルトの名無しさんNGNG
>>958
ちなみに、MSKK は学校内でのコピーを正式に認可している場合がある
先生に聞いてみるといい
0970デフォルトの名無しさんNGNG
>>967-968
現在、int型は32ビットの処理系が多いので注意。
0971デフォルトの名無しさんNGNG
971
0972デフォルトの名無しさんNGNG
>>969
有り難うございます。聞いてみます。
駄目だった場合ヤバイですね
0973デフォルトの名無しさんNGNG
sizeofとか使えば?
0974デフォルトの名無しさんNGNG
signed(符号付き)のintの場合は右シフト「>>」は、算術シフト (左の空いたところには符号ビットと同じbitで埋められる)
unsigned(符号無し)のintの場合は右シフト「>>」は、論理シフト (左の空いたところは0が詰められる)
と書いてある本が3つ以上ありました。

そうじゃなかったはず...と思ってgoogleちゃんにきいてみたいのですが、
0975デフォルトの名無しさんNGNG
その結果は
signed intの場合は右シフトは --- 算術シフト(約6割)、不定(約4割) --
unsigned intの場合は右シフトは --- 論理シフト(約7割)、不定(約3割) --
という結果でした。

いったい何が正しいのでしょうか?
もし、規格によってちがうのでしたらC99の場合だけでもいいので教えてください。
(できればC89や、それ以前のものも知りたいけど)
0976デフォルトの名無しさんNGNG
>>970
それじゃint32_tを使えばどうだろう
0977デフォルトの名無しさんNGNG
>>975
Cの規格として同じ。
http://www79.sakura.ne.jp/~third/programming/asm/assembly19.html
0978デフォルトの名無しさんNGNG
>974
規格は知らないけど、手元のK&R第2版91刷P253によると
signedでも、「値」が正ならば2^nでの割算の結果に等しい(当然だが)、
signed型でかつ「値」が負の場合は「処理系に依存する」と書いてある。

つまり、「不定」ではないから、鼻から悪魔が出る心配はしなくていい。
(「不定」と「処理系定義」は違う)
0979デフォルトの名無しさんNGNG
> signed型でかつ「値」が負の場合は「処理系に依存する」と書いてある。

unsignedの場合も知りたいんですがー
0980デフォルトの名無しさんNGNG
いや、unsigned型の変数、及びsigned型の変数に正の数値が入っている場合は、2^nでの・・・
0981デフォルトの名無しさんNGNG
じゃあunsignedの場合は実装依存じゃないのですねー

でもその日本語訳ってびみょーですね。
「unsigned型の変数、及びsigned型の変数」に正の数値が入っている場合
ともとれるので
0982デフォルトの名無しさんNGNG
>>981
unsignedには負の値は入らないからいいんじゃない?
0983デフォルトの名無しさんNGNG
ですよね。
でも私なら、その原文だったら、
unsigned型の変数の場合、およびsigned型の変数に正の数値が入っている場合は
って訳すなあ。


0984デフォルトの名無しさんNGNG
longと違ってunsignedの場合はintを略さないでほしい。
0985デフォルトの名無しさんNGNG
えー いいじゃん
unsigned longはどうする?
0986デフォルトの名無しさんNGNG
unsigned long long int って長すぎるよね。
(ほかにCで4単語熟語ってないよね?)
static const unsigned long long int ならもっと!
0987デフォルトの名無しさんNGNG
static const volatile unsigned long long int
0988デフォルトの名無しさんNGNG
extern const volatile unsigned long long int * const
extern const volatile unsigned long long int * const * const
ext(ry
0989デフォルトの名無しさんNGNG
extern const volatile unsigned long long int * const volatile * const volatile
0990デフォルトの名無しさんNGNG
いつ使うんだよ
0991デフォルトの名無しさんNGNG
アホか





ワロタ
0992デフォルトの名無しさんNGNG
int*****************************************************************************************************************************p;
0993デフォルトの名無しさんNGNG
nagasugi
0994デフォルトの名無しさんNGNG
#include <stdio.h>

int main( void )
{
char *p1, *p2;
p1 = p2 = "Winter";

while ( *p1 ) {
++p1;
}
while ( p1 > p2 ) {
--p1;
putchar( *p1 );
}
putchar( '\n' );

return 0;
}
これは、文字を逆さにして、出力するプログラムです。実行結果は "retniW"です。

ここで質問ですが、while ( p1 > p2 )の意味がわかりません。 
p1とp2は違う変数なのに、同じアドレスを使っていると考えられます。
つまり、
*p1の最初の文字(=W)アドレスが100番地だとしたら、*p2の最初の文字のアドレスはそれ以外であると考えます。

私は何か検討違いをしているのでしょうか?
0995デフォルトの名無しさんNGNG
↓ここでそうしているんじゃないの?
p1 = p2 = "Winter";
0996デフォルトの名無しさんNGNG
配列とポインタについての理解が足りない
0997デフォルトの名無しさんNGNG
>>994

まず、p1 p2にはアドレスが書いてあるんだよね
どんな数字が書いてあるのか見てみようね^^

#include <stdio.h>

int main( void )
{
char *p1, *p2;
p1 = p2 = "Winter";
printf("%x, %x\n", p1, p2);
while ( *p1 ) {
++p1;
}
printf("%x, %x\n", p1, p2);
while ( p1 > p2 ) {
--p1;
putchar( *p1 );
}
printf("\n%x, %x\n", p1, p2);
putchar( '\n' );

return 0;
}
0998デフォルトの名無しさんNGNG
(例1)
int i;
i=0;
if(i==0)printf("OK\n");
画面表示・・・OK

(例2)
int i;
i=0;
if(i=0)printf("OK\n");
 画面表示・・・ 


=と==の違いがよくわからないんです。
なぜ例2の方は画面表示無しなんでしょうか?
どなたか詳しい方ご教授ください。
0999デフォルトの名無しさんNGNG
>>998
本気で聞いてる?
=は代入。
==は比較演算で、a==bだとaとbが同じだったら真。

その程度のことは参考書でも買って一から読み直さないとやう゛ぁいよ?
1000デフォルトの名無しさんNGNG
続きは次スレで
http://pc5.2ch.net/test/read.cgi/tech/1094025471/l50
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。