[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 01/19 06:51 / Filesize : 249 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇)



1 名前:デフォルトの名無しさん [2006/05/04(木) 08:53:09 ]
入門者向けの俺に聞けスレです。
なんでもきいてよね

692 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:03:06 ]
でも1 + 1やx + yもいわゆる計算式ではないだろうか。

693 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:05:18 ]
>>692
ええ、計算式です。間違いなく計算をする数式です。

694 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:09:13 ]
>>692>>693
それはCとJavaの両方とも使うのですか?
Cは関数を計算し求めると聞いたのですが、Javaもなのでしょうか。

695 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:12:42 ]
>>694
その書き込み、本気なのか?
だったら、プログラミングなど勉強するだけ無駄だからやめとけ。

696 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:18:31 ]
数学がさっぱりでもいいが、算数は必須。

697 名前:デフォルトの名無しさん [2006/07/06(木) 21:27:52 ]
>>695
私情でやらざるを得ない状況になりましたので、今回[入門]とあったこちらで
質問致しました。

レス参考にさせて頂きます。ありがとうございました。

698 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:31:17 ]
まずやってみたら?プログラミングがどんなことするか分かってない気がする

699 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:49:20 ]
ここにもチョンが湧いてるのか。
ミサイル発射の謝罪と補償を要求する!

700 名前:デフォルトの名無しさん [2006/07/06(木) 22:06:02 ]
ここの回答者の人たちは参考書は何を読んで覚えたんですか?
0から始めた参考書と、それなりにわかってから読んだ参考書を教えてください



701 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 22:17:54 ]
言語としてのCに限るなら林のビギナー編だけしか読まなかったな。
もう後輩に売っちまった。

702 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 00:42:13 ]
>>699
お前ひとりに直撃すりゃあ良かったのにな。

703 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 11:30:11 ]
在日は速く半島に帰れ!
また有事の際に日本で儲けていたと半島のチョンに蔑まれ続けるぞ。

704 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 11:33:22 ]
>>700
0からK&Rの第一版。
20年ぐらい前に覚えたのだが、それ以上にまともに書いてある本はなかった。
その後第二版も読んだ。

705 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 11:41:42 ]
>>703
憂さ晴らしは妥当な板でどーぞ

706 名前:初心者 [2006/07/07(金) 12:01:46 ]
>>699話す事あるなら他のレスでどうぞ、
(ちゃんと見るから!!)
このレスを汚くするな!!

707 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 16:37:53 ]
PGの雇用が奪われてるのは、不法滞在し異常に安い賃金で働くチョンのせい。

708 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 18:55:02 ]
>>706
いちいち反応するな。流せ

オレモナー

709 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 23:24:53 ]
>>706の「レス」に反応

710 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 23:39:50 ]
ごめんね、スレとレスの違いも分からなくて
ごめんね



711 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 23:44:17 ]
ごめんね、ごめんね、ごめんねごめんね、
ごめんねごめんね、ごめんね、ごめんね、
ごめんね、ごめんね、ごめんねごめんね、
ごめんねごめんしねごめんね、ごめんね、
ごめんね、ごめんね、ごめんね、ごめんね
ごめんねごめんね、ごめんね、ごめんね、

712 名前:デフォルトの名無しさん mailto:sage [2006/07/08(土) 10:29:13 ]
チョン氏ね!

713 名前:デフォルトの名無しさん [2006/07/09(日) 00:22:08 ]
エンターキーが押されたかどうかの判定の仕方と、
スペースキーが押されたときの判定の仕方を教えてください

714 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 00:29:35 ]
環境に依存するからもうちょっと情報だして

715 名前:713 [2006/07/09(日) 00:37:55 ]
標準c言語で、コマンドプロプト上で動かすコンソールアプリです。
OSはWindowsXPです。よろしくお願いします

716 名前:デフォルトの名無しさん [2006/07/09(日) 03:15:58 ]
VC++4.0でXP用のソフトを組んでます。
操作ミスなどで警告音を鳴らしたいのですが、
MessageBeep()関数だと単純な音しか鳴らせず、おもしろくありません。
かといって、警告音のためにWAV作ったりするのも大変なので、
少しだけシャレた警告音を簡単に慣らす方法がありませんか?

717 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 03:24:07 ]
Beep()を沢山つかって音楽でも奏でてはいかが?
10ミリ秒ごとにアルペジオさせれば和音っぽく聞こえて
周りをちょっと驚かすぐらいはできるよ。

718 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 03:36:44 ]
適当に答えてみる。
>>713
標準c言語だと、getchar()かな?
でも、エンターが押されないと、stdinに入ってこない。
MS-Cだと、getch()が1文字ずつとれる。(エコーなし)
エコーしたいなら、getche()。
<conio.h>に入っている。

719 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 04:20:51 ]
CでGUIアプリ作る方法教えてください

720 名前:デフォルトの名無しさん [2006/07/09(日) 05:49:53 ]
Cでかいたプログラムから命令(メッセージ?)送ると
グラフィックだけ出力してくれるサーバっぽいアプリケーション
ってないですか?




721 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 05:57:51 ]
X?

722 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 05:58:37 ]
あ、「Windows」の方が適切かな

723 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 06:12:09 ]
適当に答えてみる。
>>720
system("start C:\\temp\\test.gif");
なんてやれば、windowsならgif拡張子に関連付けしてるアプリを
よんでくれるはず。(.bmpとか.jpgでもOK)

724 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 11:38:34 ]
OpenGLとかActiveXの記述だけで描画してくれるアプリが欲しいってこと?
普通は鯖といちいち通信するのが面倒だから自前でライブラリ抱えます。

少しだけシャレた警告音はwavでも鳴らさないと無理な悪寒。
どんなのが少しだけシャレた警告音なのか録音してウpしてみてくれ。

常に入力を監視する。
スペースかリターンが押されたのを判定すればいい。
普通はキー入力があったらイベント飛んで来るから、入力に対応した処理を記述しておけばOSが実行してくれる。

725 名前:713 mailto:sage [2006/07/09(日) 11:39:33 ]
適当な回答ありがとうございます。参考になりました

726 名前:デフォルトの名無しさん [2006/07/09(日) 11:56:05 ]
MS Visual C++ NET
BorLand C++ Builder6
てどちらが使いやすい?



727 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 22:16:51 ]
両方使ってみてそれぞれにスレがあるから感想でもカキコしてみたら?
ムカつくほうは使わないほうがいいと思う。ストレス感じるだけ。

728 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 23:29:29 ]
>>726
単なる数値計算やら簡単なプログラム(アルゴリズムの勉強)程度なら
Borland C++ 5.5が手軽で良いYO!

729 名前:716 [2006/07/10(月) 01:26:04 ]
>>717
10mS毎に?
うーん、他にいい方法がなかったら試してみます(汗

730 名前:デフォルトの名無しさん [2006/07/10(月) 01:36:13 ]
質問です。
「'」という文字を配列に格納したいのですが、エラーが出てうまくいきません。
エラーは以下の3つです。
文字列定数は1文字か2文字でなければならない。
,が必要。
文字列または文字定数が閉じていない。

宜しくお願いします。



731 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 01:41:01 ]
¥’

732 名前:デフォルトの名無しさん [2006/07/10(月) 03:17:38 ]
>>731
ありがとうございます!

733 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 12:36:59 ]
>>730-731
せめて半角で書いて欲しいとオモタ

734 名前:デフォルトの名無しさん [2006/07/10(月) 20:38:16 ]
CHAR PTCHAR TCHAR WCHAR型の違いを教えてください

735 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 21:49:40 ]
typedef char CHAR;
typedef wchar_t WCHAR;
#ifdef UNICODE_
typedef WCHAR TCHAR;
#else
typedef CHAR TCHAR;
#endif
typedef TCHAR *PTCHAR;

736 名前:726 [2006/07/10(月) 21:50:19 ]
>> 728
サンクス

737 名前:デフォルトの名無しさん [2006/07/10(月) 21:58:42 ]
putchar だけで文字コード 112、117等 を出力するプログラムを教えてください。

738 名前:734 [2006/07/10(月) 22:08:03 ]
>>735
アリガ10

739 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 22:28:49 ]
>>737
putchar(112)

740 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 22:58:26 ]
そのまんまですな。



741 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 02:29:38 ]
ワロタ

742 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 02:33:22 ]
CでGUI?
WindowsならWin32
LinuxならGTK+
どっちもCライブラリ

743 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 09:08:17 ]
>>728
BorlandC++と一緒にTurboDebugger落として使ってみたら、
このデバッガって、キャラクタ画面ベースのUIなのな。
あまりに懐かしいスタイルにめまいがしたyo!

744 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 16:09:48 ]
GUIのデバッカってメモリ喰うしデバッカに落ちた時点で表示できないと思う。

745 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 22:50:17 ]
DLL内でmallocした物をexeからfreeしてはいけないと聞いた事があるのですが
malloc以外のHeapCreateやHeapAlloc(GetProcessHeapとかなら問題ないのでしょうか?

746 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:12:42 ]
>>745
確保するときと解放するときとで、同じヒープハンドルを用いれば問題ない。

けれどDLLでメモリを確保して、そこへのポインタをEXEに返すのだったら、
DLLはそのメモリを解放する関数も公開するのが一般的だと思う。

747 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:19:17 ]
>>745
ちなみに前者がいけない理由が、ことなるメモリマネジメントルーチンを使っている
可能性があるから。VCのDebug/Releaseモードとか。

748 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:45:52 ]
>>746-747
そのルーチン覗いてみるのも勉強になるかもしれませんね。
とりあえず一般的な方法でしてみたいと思います。
ありがとうございました。

749 名前:デフォルトの名無しさん [2006/07/12(水) 01:01:46 ]
VC++なんですが、以下のように配列を定義しています。
signed short foge[]={
0x0001,
0x7fff,
0x8000,
0xffff
};


コンパイルするとマイナス値(0x8000と0xffff)で
warning C4305: 'initializing' : 'const int ' から 'short ' へ切り詰めます。
というワーニングがでます。
C言語ではsigned 16bitを表す接尾子が無いようなんで、
キャストで回避するしか無いんでしょうか?


750 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 01:04:40 ]
素朴な疑問。
何故const signed shortにしないのだろう。
それはさておき、-0x8000, -0x0001ではダメ?



751 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 01:11:56 ]
>>749
よくわからないけど、キャスト以外の方法で、警告消したいだけなら
0x8000 → -32768
0xFFFF → -1
とか、#pragma とかがあるよ。

752 名前:デフォルトの名無しさん mailto:age [2006/07/12(水) 01:26:04 ]
すみません
ファイルからの読み込みなのですが
改行がCR(0D)のみで書かれているテキストファイルから
テキストモードでデータを読み込みたいのです

fscanf(fp,"%d",&data1);
のように書くと、だいたいはCRのみの改行も改行として読んでくれるのですが
たまに改行をすっ飛ばして変な値を読んでしまいます

改行がCRのみのテキストファイルをうまく読み込む方法はありませんでしょうか

753 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 01:27:43 ]
fgets()

754 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 10:47:28 ]
>>752 だいたいうまくいくけど、たまに変になるって、違うところでバグってるんじゃないの?


755 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 11:17:19 ]
3.4E-38って
0.00000000000000000000000000000000000000034?


756 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 11:49:45 ]
>>755
0.000000000000000000000000000000000000034


757 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 14:13:29 ]
>>756
あ、ごめん、3のところが38番目になればいいのね。
じゃあfloat型って3.4E-38〜3.4E+38って書いてあるから
34000000000000000000000000000000000000〜0.000000000000000000000000000000000000034?
でも有効桁7桁ってどういうこと?

758 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 14:42:48 ]
>>757
>でも有効桁7桁ってどういうこと?
数学の時間寝てたのか
それともまだ習ってないのか
まあとにかくググれ。

759 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:01:17 ]
ぐぐってもわからん
float fe;
fe=5e2;
って書くと
500.000000
って出力されるけど、どこが7桁?

760 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:21:00 ]
>>759
俺のところで実行したらこうなるよ。

#include <stdio.h>

main()
{
float f = 1.0 / 3;
double d = 1.0 / 3;

printf("%.30f\n", f);
printf("%.30f\n", d);

return 0;
}

結果
0.333333343267440795898437500000
0.333333333333333314829616256247





761 名前:デフォルトの名無しさん [2006/07/12(水) 15:22:11 ]
グローバル変数を多用してしまうのですが、
変数を各関数で共有する方法ってグローバル変数以外に何かありますか?

762 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:31:49 ]
>>757
3.4E-38 は 3.4 * 10の-38乗 だ。
有効桁数は扱える桁数。7桁なら 1.234567 とか 1.234567E+100 とか、
とにかく 7 桁は扱えるが 1.2345678 と書いても最後の 8 が扱えない。

>>759
どう出力されるかということと内部的に何桁保持されているかという
ことは別の話。


763 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:35:45 ]
>>760
いやそうなるのはわかるけど、
float型が3.4E-38〜3.4E+38で有効桁7桁ってどういう意味?
float f = 1.0/3
printf("%f")
だと
0.333333
で7桁まで出力されるって意味?
3.4E-38〜3.4E+38ってどういうこと?
出そうと思えば50桁以上出せるけど…

764 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:39:15 ]
>>761
必要な変数は構造体のメンバにして
その構造体へのポインタを受け渡しする。

765 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:39:28 ]
>>762どうも
じゃあfloat型が3.4E-38〜3.4E+38っていうのは?

766 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:50:21 ]
普通に3.4*10^-38〜3.4*10^38でしょ?
3.400000*10^38のほうが正しいかな?

767 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:53:15 ]
>>764
ありがとうございます、さっそくチャレンジしてみます

768 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:53:27 ]
>>766
はあ・・・
でも10の50乗でも100乗でも入力できるし出力も出来るよ?

769 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 15:56:39 ]
なんかよくわかんないけど、まあこれでも読んでよ。

「浮動小数点型と誤差」
ttp://www.kyoto-su.ac.jp/~yamada/programming/float.html

770 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:04:31 ]
>>769
ああ…それよんだんだけど
1.175494 10-38 < float の絶対値 < 3.402823 10+38
って書いてあるよね。
私の本は
3.4E-38〜3.4E+38
って書いてあるよ。
それで、例えば、
float f=1000000000000000000000000000000000000000000000000.00000000000000000000000000000000000000001;
printf("%40.40f",f);
って書いても
1000000000000000000000000000000000000000000000000.00000000000000000000000000000000000000001;
って表示されるよ。38超えてるよ?



771 名前:770 mailto:sage [2006/07/12(水) 16:07:09 ]
あ、ちょっとコピペミスしたけど、気にしないで

772 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:11:00 ]
>>770
コンパイラ何使ってるの?

773 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:11:58 ]
floatよりdoubleの方が速いってよ

774 名前:770 mailto:sage [2006/07/12(水) 16:12:42 ]
>>772
cygwinのgccだけど・・・

775 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:16:17 ]
>>774
>>770のソースを「全部」コピペしてみて。動かしてみるから。

776 名前:770 mailto:sage [2006/07/12(水) 16:20:30 ]
>>775え・・・でも770そのまんまだよ?

#include <stdio.h>

main(){
float f=1000000000000000000000000000000000000000.0000000000000000000000000000000000000001;
printf("%40.40f\n",f);
}

終わり。




777 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:22:13 ]
>>776
うちでは"Inf"って表示されるけど・・・
gccのバージョンはいくつ?

778 名前:770 mailto:sage [2006/07/12(水) 16:24:22 ]
gcc version 3.4.4 (cygming special)
です。

779 名前:770 mailto:sage [2006/07/12(水) 16:26:21 ]
コンパイラの問題なの?

780 名前:777 mailto:sage [2006/07/12(水) 16:30:09 ]
>>778
おかしいな・・・。うちとまったく一緒のコンパイラなのに。
ちなみに
printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
ってやってみて。
8って表示されるはずだから。これはその数値がdouble型のリテラルだって
コンパイラが判断してることを示してる。それをfloat型に代入するときに
暗黙の型変換が行われるはずなんだけど・・・。

ってことで、俺はお手上げ。




781 名前:777 mailto:sage [2006/07/12(水) 16:30:42 ]
あ、ちなみに"Inf"ってのはInfinityね。正の無限大。

782 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:34:30 ]
>>770
そのソースでそのgccだと、警告が表示されると思うのだがそれをコピペして見給え。

783 名前:770 mailto:sage [2006/07/12(水) 16:38:20 ]
>>777
printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
ってしたら
core dump
しました。
うちの環境がおかしい?WinXP Cygwin最新のものだけど…
入れなおすか…?

どうもありがとうございました。うちがおかしいってことが分かったのでうれしいです。


784 名前:777 mailto:sage [2006/07/12(水) 16:39:20 ]
>>782
-Wallでも出ない。

785 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:39:53 ]
釣りか? 壮大な釣りだったのか?

786 名前:770 mailto:sage [2006/07/12(水) 16:41:12 ]
>>783
あ、いや、間違ってた
printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
でちゃんと8って表示されました。

>>782
警告も何にも出ませんよ。普通にa.exeすると結果表示されます。

787 名前:777 mailto:sage [2006/07/12(水) 16:42:35 ]
>>786
んじゃ、最後にuname -aした結果をコピペしてくれ。

788 名前:782 mailto:sage [2006/07/12(水) 16:46:07 ]
>>770
>>777
警告出ないか? main()の戻り値の型がないと。漏れの端末だとこうなるのだが。
--
$ gcc --version ; gcc foo.c
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

foo.c:3: warning: return type defaults to `int'
foo.c: In function `main':
foo.c:6: warning: control reaches end of non-void function

789 名前:770 mailto:sage [2006/07/12(水) 16:47:14 ]
う〜Cygwinコピペできないからつらい
uname -a は
CYGWIN_NT-5.1 ****** 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin
です。名前は伏せ。珍しくもないけど

790 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:48:04 ]
>警告も何にも出ませんよ。普通にa.exeすると結果表示されます。
make使ってて更新されたと認識されていないとか、違うところのa.exeが起動されているとか。
make使わず直接gccを動かしてみるとか、明示的にパスを指定してみるとかしてみたら?



791 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:49:54 ]
普通にcygwinをインストールすると所謂dos窓で動くから、
マウスで範囲選択して右クリックでコピペされると思うけどなぁ。

792 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:50:08 ]
sizeof(float) が 8 だったりしたら…







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef