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

C言語なら俺に聞け(入門編)Part 75

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG?S★(532000)
C言語の*入門者*向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 74
http://hibari.2ch.net/test/read.cgi/tech/1290857610/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 144代目
http://hibari.2ch.net/test/read.cgi/tech/1291471791/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん2010/12/18(土) 23:55:19
1乙
0003デフォルトの名無しさん2010/12/19(日) 01:04:05
一乙
0004デフォルトの名無しさん2010/12/19(日) 01:05:49
rerunに()がついてないのってどういう動作ですか
return(0)とかreturn(1)とかはよく見るのですが
0005デフォルトの名無しさん2010/12/19(日) 01:07:51
rerunってなに?
0006 ◆QZaw55cn4c 2010/12/19(日) 01:10:42
>>4
それは、参考にしている本があるとすればそれが古いのでは?
最近は return 0; と書くのが普通。
参考にしている書籍なりWebページなりを変えたほうがいいかもしれません。
0007デフォルトの名無しさん2010/12/19(日) 01:12:40
typoすると関数に間違われるからね
0008デフォルトの名無しさん2010/12/19(日) 01:16:04
>>6
お前の頭も古いだろ
この中年ニートが
0009デフォルトの名無しさん2010/12/19(日) 01:58:53
http://codepad.org/cLluAHsu

参考書の丸写しなんですが文字が出力されないです なんでですか
0010デフォルトの名無しさん2010/12/19(日) 08:06:13
if(ac==0)
↓
if(ac<=1)
0011デフォルトの名無しさん2010/12/19(日) 08:57:37
> 参考書の丸写しなんですが文字が出力されないです なんでですか
文字を入力していない
か
起動時に任意のファイルを指定してない
0012デフォルトの名無しさん2010/12/19(日) 10:57:54
>>4
voidを返却する動作です。
0013デフォルトの名無しさん2010/12/19(日) 11:38:35
#include <stdio.h>
void main(void)
{
char s[10];
int in;
scanf("%d",&in);
scanf("%c",&s[10]);
printf("%d %c",in,s[10]);
}
うまくいきません。ご教授を
0014デフォルトの名無しさん2010/12/19(日) 11:43:33
ジョジョ、配列の範囲をよく見るんだ
0015デフォルトの名無しさん2010/12/19(日) 11:43:36
#include <stdio.h>
void main(void)
{
char s[10];
int in;
scanf("%d",&in);
scanf("%s",s);
printf("%d %s", in,s);
}
0016デフォルトの名無しさん2010/12/19(日) 11:47:23
15コピペしたらうまくいった。
scanf使うときは&つけなくていいのですか
scanf("%s",s);があやしいです
0017デフォルトの名無しさん2010/12/19(日) 11:56:37
>>16
ポインタの辺りまで勉強すると理解が可能になるからとりあえずはそういうもんだと暗記して先に進むといいよ
0018デフォルトの名無しさん2010/12/19(日) 12:00:04
>>16
&をつけるならこう
scanf("%s",&s[0]);
0019デフォルトの名無しさん2010/12/19(日) 12:03:44
標準入出力は隠蔽して、あるいは使わないで進めて
最後らへんで教えるようにしたほうがいいと思うんだがそんな参考書は存在しないのかね
0020デフォルトの名無しさん2010/12/19(日) 12:07:41
過去ログでも読んでろ
0021デフォルトの名無しさん2010/12/19(日) 12:11:58
勉強?になりました。
データの入力を文字列型で受け取るときは&使わない、もしくは&s[0]を使うんだ
0022デフォルトの名無しさん2010/12/19(日) 12:18:39
>>19
やさしいCはそんな感じの教え方だったよ

あとで説明するからとりあえず形だけ知っとけみたいな
0023デフォルトの名無しさん2010/12/19(日) 12:37:18
そうやって形だけ覚えるとあっという間に行き詰まるよ
0024デフォルトの名無しさん2010/12/19(日) 12:48:43
>>23
あとでやるから問題ないだろ
最初に書いたときは
#includeもint main(void)もわからなかったが説明されてもわかる訳ないしとりあえず無視しないと話は先に進まん
0025デフォルトの名無しさん2010/12/19(日) 14:12:45
>>19
同感
暗黙の副作用だの main に先立つ処理だのといった
汚いものは佳境に入ってからだよな

組み込みだとそういう流れになるし
当然のように甘っちょろい本は少ない
0026デフォルトの名無しさん2010/12/19(日) 15:56:20
へっへっ
0027デフォルトの名無しさん2010/12/19(日) 15:59:00
ひっひっ
0028デフォルトの名無しさん2010/12/19(日) 16:18:32
いいかげん、Cの所要点を全部まとめた1冊の本を出してください。

色々、本が足りなさ過ぎて全部網羅するとなると、20冊くらい立ち読みしなきゃいけないので、
足が棒になります。このスレで本の作者の人、宜しく。
0029デフォルトの名無しさん2010/12/19(日) 16:19:48
そんなバカな本はお前くらいしか読まないから書かない
0030デフォルトの名無しさん2010/12/19(日) 16:26:42
アルゴリズム辞典みたいなのがいいんじゃね
0031デフォルトの名無しさん2010/12/19(日) 16:30:52
規格書を印刷すればいいと思うぜ
0032デフォルトの名無しさん2010/12/19(日) 16:39:15
>>28はソースコードを分割しない人間
0033デフォルトの名無しさん2010/12/19(日) 17:23:43
本を買えば立ち読みせずにすむな
0034デフォルトの名無しさん2010/12/19(日) 17:54:39
スレッドとかって入門書には書いてないよね
0035デフォルトの名無しさん2010/12/19(日) 18:01:54
>>28
http://www.amazon.co.jp/gp/product/4434124234/
0036デフォルトの名無しさん2010/12/19(日) 18:12:11
スレッドとかってC言語の規格書にも書いてないよ
0037デフォルトの名無しさん2010/12/19(日) 18:16:34
>>28
Cリファレンスマニュアルが鉄板
それ以上はもう規格書をあたるしかない
0038デフォルトの名無しさん2010/12/19(日) 18:26:21
>>28はそんなことを聞いてるの?立ち読みした20冊を挙げてほしいわ
0039デフォルトの名無しさん2010/12/19(日) 19:53:04
C++0xにスレッド関連のライブラリが追加されるっぽいが
果たしてどうなるか・・・
まあCには関係のない話だが
0040デフォルトの名無しさん2010/12/19(日) 19:56:11
test
0041デフォルトの名無しさん2010/12/19(日) 20:57:13
糞スレ
0042デフォルトの名無しさん2010/12/19(日) 21:43:58
>>41
↑糞レス
0043デフォルトの名無しさん2010/12/19(日) 21:51:46
>>43
↑糞レス
0044デフォルトの名無しさん2010/12/19(日) 22:15:12
>>45
↑糞レス
0045デフォルトの名無しさん2010/12/19(日) 22:17:43
>>54
糞レス
0046デフォルトの名無しさん2010/12/19(日) 22:20:41
>>41
きっとスレの人たちがあなたに何かしたんですね?
それを怒ってるから粘着しつづけてるんですね?
わかります。
ごめんなさい。ゆるしてください。
ほら、みんなもあやまって!
0047デフォルトの名無しさん2010/12/19(日) 22:22:55
>>46
糞レス
0048デフォルトの名無しさん2010/12/19(日) 22:30:02
「C言語を始めよう!」の最新バージョンだと左に行番号表示させることってできないんですか?
0049デフォルトの名無しさん2010/12/19(日) 22:31:40
はい。まあメッセージの行番号をクリックすれば該当箇所に飛べたと思うけど
0050デフォルトの名無しさん2010/12/19(日) 22:32:00
>>48
環境設定はスレチなので死んでください
0051デフォルトの名無しさん2010/12/19(日) 22:34:59
macで何かいいC言語のコンパイラってありますか?
0052デフォルトの名無しさん2010/12/19(日) 22:44:18
とりあえずgccいいんじゃね?
命令一つでインストールできるし
0053デフォルトの名無しさん2010/12/19(日) 22:45:31
llvm-gcc
0054デフォルトの名無しさん2010/12/19(日) 22:50:49
ライセンスの関係でmacのgccはバージョンが古い
0055デフォルトの名無しさん2010/12/19(日) 23:16:36
buf[i+off]=buf[i];
これの意味がわかんない
どう代入するの?
0056デフォルトの名無しさん2010/12/19(日) 23:20:52
右に移動
0057デフォルトの名無しさん2010/12/19(日) 23:22:00
下とか上に移動かもしれん
0058デフォルトの名無しさん2010/12/19(日) 23:24:17
もうちょっとわかりやすく教えてほしいです
0059デフォルトの名無しさん2010/12/19(日) 23:25:02
ローテーション
0060デフォルトの名無しさん2010/12/19(日) 23:28:02
AKB
0061デフォルトの名無しさん2010/12/19(日) 23:29:05
>>52
gccってなんですか?
0062デフォルトの名無しさん2010/12/19(日) 23:32:13
Gnu Compiler Collection
0063デフォルトの名無しさん2010/12/19(日) 23:33:27
>>58
単にバッファーのデータ位置をoffセット分ずらしただけでしょ。
コードそのままジャン
0064デフォルトの名無しさん2010/12/19(日) 23:51:57
>>63 =つける意味あるの?
0065デフォルトの名無しさん2010/12/19(日) 23:53:55
つけたくなければ消せば?
0066デフォルトの名無しさん2010/12/20(月) 00:40:01
自然数を10個入力として受け付けて、それを配列に格納する。配列の各要素を調べて、奇数であれば1たした数でおきかえよ。0は偶数である。

この問題をやっています。
普通にコンパイルできるんですが、10個入力した後になんにもおきません。入力もできなくなります。なにかがちがうのでしょうか?
コンパイラは学習用C言語開発環境というソフトを使っています。

#include<stdio.h>
int main(void){
int data[10];
int i,tmp;
for(i=0;i<10;i++){
scanf("%d",&data[i]);
}
for(i=1;i<10;i=i++){
if(data[i]%2==0){
data[i]=data[i]+1;
}
}
for(i=0;i<10;i++){
printf("%d,",data[i]);
}
return(0);
}

0067デフォルトの名無しさん2010/12/20(月) 01:02:52
>for(i=1;i<10;i=i++)

(・∀・)
0068デフォルトの名無しさん2010/12/20(月) 01:14:16
例えば3333があったとして、これが3を何文字含む数字かをプログラムしたいとき
どのようにすればいいですか?
0069デフォルトの名無しさん2010/12/20(月) 01:33:25
>>66
i=i++
がよくなくて、無限ループになってる。
そこはi++だけでいい
0070デフォルトの名無しさん2010/12/20(月) 01:34:09
>>68
その3333が文字列なのか数字なのかによるけれど、文字列にして数えれば楽なんでないかな
0071デフォルトの名無しさん2010/12/20(月) 01:44:05
ふっひっ
0072デフォルトの名無しさん2010/12/20(月) 02:01:31
>>68
カウントを0にします
1桁目が3か調べます
3だったらカウントを1つ増やします
10で割ります
1桁目が3か調べます
3だったらカウントを1つ増やします
10で割ります
1桁目が3か調べます
3だったらカウントを1つ増やします
10で割ります
…
おしまい(^ω^)
0073デフォルトの名無しさん2010/12/20(月) 02:24:23
if文でのカウントの仕方が分かりません
0074デフォルトの名無しさん2010/12/20(月) 07:16:28
ほっほっ
0075デフォルトの名無しさん2010/12/20(月) 08:46:24
ふっほっ
0076デフォルトの名無しさん2010/12/20(月) 10:41:52
Javaの質問でもいいですか?
0077デフォルトの名無しさん2010/12/20(月) 10:45:48
はい
0078デフォルトの名無しさん2010/12/20(月) 10:54:09
よくねーよカス
0079デフォルトの名無しさん2010/12/20(月) 12:45:45
いやいいだろ
C→Javaなんだから
0080デフォルトの名無しさん2010/12/20(月) 12:55:14
アホかい。
0081デフォルトの名無しさん2010/12/20(月) 13:14:11
アホかい。
0082デフォルトの名無しさん2010/12/20(月) 13:30:45
どどど童貞ちゃうわー!
0083デフォルトの名無しさん2010/12/20(月) 15:04:49
下半身のC言語はいいのでしょうか
0084デフォルトの名無しさん2010/12/20(月) 15:22:55
ほっほっ
0085デフォルトの名無しさん2010/12/20(月) 15:57:10
どぴゅっどぴゅっ
0086デフォルトの名無しさん2010/12/20(月) 16:23:04
ぬりゅっぷぬりゅっぷ
0087デフォルトの名無しさん2010/12/20(月) 17:24:24
ひっひっ
0088デフォルトの名無しさん2010/12/20(月) 17:25:13
ふっふっ
0089デフォルトの名無しさん2010/12/20(月) 17:25:54
アホかい。
0090デフォルトの名無しさん2010/12/20(月) 17:42:19
こいつ毎日一人でこんな書き込みばかり繰り返して悲しくならないのかな
0091デフォルトの名無しさん2010/12/20(月) 17:49:29
多分つられて同じようなことしてる人が何人か
0092デフォルトの名無しさん2010/12/20(月) 17:51:16
ふっほっ
0093デフォルトの名無しさん2010/12/20(月) 18:02:05
>>91
お前が犯人だろw
0094デフォルトの名無しさん2010/12/20(月) 18:06:11
なにかの仕返し(?)か、プライド傷つけられた(?)か、何かの理由で荒らしてるんでしょうけど、
「ふっほっ」とかしか言わないから、なにを謝罪すればいいのか判らないです。

みんなは、あなたのお母さんじゃないので、あなたの気持ちをエスパーすることは難しいです。
あなたの不満の理由を教えてください。 具体的に、どうなってほしくて荒らしてるのか? 目的を教えてください。

改善できる事なら改善しますし、謝れることなら謝ります。
0095デフォルトの名無しさん2010/12/20(月) 18:10:20
↑コピペ?
0096デフォルトの名無しさん2010/12/20(月) 18:10:20
×エスパーする
△ESPする
○推測する
◎当て推量する
0097デフォルトの名無しさん2010/12/20(月) 18:19:00
>>94は過去にそういうことがあったんだなw
0098デフォルトの名無しさん2010/12/20(月) 18:37:30
糞スレ
0099デフォルトの名無しさん2010/12/20(月) 18:37:41
longが最低でも32bitあるって本当ですか?
0100デフォルトの名無しさん2010/12/20(月) 18:38:44
>>99
スレ違い
0101デフォルトの名無しさん2010/12/20(月) 18:39:11
基本情報用のテキストにあったんですがそのままやってみたところダメみたいです
どこ修正したらいいんでしょうか
http://codepad.org/Ts2MXyfF
0102デフォルトの名無しさん2010/12/20(月) 18:43:58
テキストをよく見るといいよ
0103デフォルトの名無しさん2010/12/20(月) 18:45:10
>>102
丸写しです
0104デフォルトの名無しさん2010/12/20(月) 18:53:21
>>103
おそらく写し間違いだと思うが、セミコロンが足りなかったり
スペースが足りなかったりしてる
0105デフォルトの名無しさん2010/12/20(月) 19:01:36
>>104
お前優しいな
0106デフォルトの名無しさん2010/12/20(月) 19:14:42
1〜10までの自然数の和を求めるプログラムをかけ
(ただしfor文を用いること)

for文使えとか意味不明ですが
自分なりにfor文入れてみました。あってますか
void main(void)
{
int i;
int sum;
sum = 0;
for(i=0;i<10;i++){
sum = 10 * 11 / 2;
}
printf("sum = %d",sum);
}
0107デフォルトの名無しさん2010/12/20(月) 19:18:10
いいんじゃねw
0108デフォルトの名無しさん2010/12/20(月) 19:20:29
>>104
間違ってないと思うんですがみおとしてるかもしれません
あとでスキャナで読み取ります;
0109デフォルトの名無しさん2010/12/20(月) 19:20:44
>>104
65点
まぁ合格かな
0110デフォルトの名無しさん2010/12/20(月) 19:20:59
10回同じ計算する必要はないだろw
for(i = 0; i < 1; i++) で 十分
0111デフォルトの名無しさん2010/12/20(月) 19:24:36
>>110
教授がfor(i=0;i<10;i++)使えいったからあえて使ってる
0112デフォルトの名無しさん2010/12/20(月) 19:27:32
int o = 1; for


( ; o ; )
// //


{ puts("55"); o = 0; }
0113デフォルトの名無しさん2010/12/20(月) 19:27:47
じゃ、for(i = 1; i <= 10; i++) sum += i; じゃダメなのかw
0114デフォルトの名無しさん2010/12/20(月) 19:39:36
>>106は釣りでした
みんな引っかかってくれてありがとう
0115デフォルトの名無しさん2010/12/20(月) 19:41:05
このスレ自体が釣りなのになにいってんだこいつ
0116デフォルトの名無しさん2010/12/20(月) 19:44:32
>>114
釣りじゃなかったらどうするつもりだったんだ
責任とれんのか
0117デフォルトの名無しさん2010/12/20(月) 19:53:27
>>113
> 教授がfor(i=0;i<10;i++)使え
こうすればいいかな。

void main(void)
{
int i;
int sum;
sum = 0;
for(i=0;i<10;i++);
for(i = 1; i <= 10; i++) sum += i;
printf("sum = %d",sum);
}
0118デフォルトの名無しさん2010/12/20(月) 19:56:20
void main(void)
{
int i;
int sum;
sum = 0;
for(i=0;i<10;i++){
sum+=i;
}
sum+=i;
printf("sum = %d",sum);
}
0119デフォルトの名無しさん2010/12/20(月) 19:58:12
>>118
0から10の整数を足しちゃってるから題意を完全には満たしていない
0120デフォルトの名無しさん2010/12/20(月) 20:00:08
>>119
void main(void)
{
int i,j=1;
int sum;
sum = 0;
for(i=0;i<10;i++){
sum+=j;
j++
}
printf("sum = %d",sum);
}
0121デフォルトの名無しさん2010/12/20(月) 20:02:22
ぐぬぬ
0122デフォルトの名無しさん2010/12/20(月) 20:08:28
糞スレ
0123デフォルトの名無しさん2010/12/20(月) 20:27:32
ぐふふ
01241012010/12/20(月) 21:47:04
http://iup.2ch-library.com/i/i0207422-1292849169.jpg
スキャンしてきました
0125デフォルトの名無しさん2010/12/20(月) 22:05:18
>>124
テキストが間違えてる。
文の最後にはセミコロンが必要なので足してください。
0126デフォルトの名無しさん2010/12/20(月) 22:06:06
>>124
6行目: ステートメントにセミコロン(;)がない(関数 main )
→printf("キーボードから数字を2つ入力してください\n") の後にセミコロン付ける

11行目: 未定義のシンボル return0(関数 main )
→ returnと0の間に空白入れる。
0127デフォルトの名無しさん2010/12/20(月) 22:42:35
>>125-126
ありがとうございます。
加えて組みなおしてきます。
0128デフォルトの名無しさん2010/12/20(月) 23:15:09
ゼロサプレス、ゼロパディングを簡潔に書ける関数みたいなのって
標準で用意されてる?
0129デフォルトの名無しさん2010/12/20(月) 23:16:36
>>128
memset
0130デフォルトの名無しさん2010/12/20(月) 23:21:02
そっちの0埋めじゃなくね?
0131デフォルトの名無しさん2010/12/20(月) 23:31:05
でもできるでしょ
0132デフォルトの名無しさん2010/12/20(月) 23:38:56
ゼロサプレスはふつーにsprintf("%8d", n)とかでいいよね。
0133デフォルトの名無しさん2010/12/20(月) 23:41:28
08dだよね。
0134デフォルトの名無しさん2010/12/20(月) 23:42:33
ごめん、まちがえた。
0135デフォルトの名無しさん2010/12/21(火) 00:38:57
>>99
規格Cで保証されている
ちなみにcharは少なくとも8ビット、intは少なくとも16ビット
0136デフォルトの名無しさん2010/12/21(火) 01:07:41
fgets(buf,MAX,fp)って
一回の動作でbufに格納する時、文字列の途中で\nが入っていた場合、MAXに達してなくても
途中で文字の受け渡しを終了するんですか?
0137デフォルトの名無しさん2010/12/21(火) 01:10:49
はい
0138デフォルトの名無しさん2010/12/21(火) 01:20:46
巷で見かける MAX のほとんどが動くけど間違ってるんだよな…
0139デフォルトの名無しさん2010/12/21(火) 01:32:19
サプレス=抑止だから 0 つけちゃダメだおw
0140デフォルトの名無しさん2010/12/21(火) 02:52:23
>>135
そういうのよくないとおもうが、まぁ、これも勉強と思えばいいのかね。
0141デフォルトの名無しさん2010/12/21(火) 04:56:31
いや、C99しかみてないけど
charが規格を満たすにはどうしたって8bit要ることないか?
0142デフォルトの名無しさん2010/12/21(火) 05:00:55
いつものアレか?
charは1byteであることが保証されているが1byteが8bitであるとの保証はない
0143デフォルトの名無しさん2010/12/21(火) 06:12:43
CHAR_BITの話はさておいても、intもdoubleも規格ではサイズ決まってないというところ。

C99だとintは最低16bit doubleは最低32bitって決められてるのかな。
0144デフォルトの名無しさん2010/12/21(火) 06:25:11
>>143
サイズは決まってないが
最低限表現可能でなければいけないな値は決められてるじゃないか

サイズが決まってないってことしか知らないのか?
0145デフォルトの名無しさん2010/12/21(火) 06:48:13
7bitでもいけるじゃまいか?
0146デフォルトの名無しさん2010/12/21(火) 08:38:35
K&Rにはlong最低32bitって書いてあるようだけど?
0147デフォルトの名無しさん2010/12/21(火) 09:08:15
>>145
いや、足りないだろunsingned char で0-255が要求されてんだぞ
0148デフォルトの名無しさん2010/12/21(火) 09:08:34
ほっほっ
0149デフォルトの名無しさん2010/12/21(火) 10:11:52
K&R(笑)
0150デフォルトの名無しさん2010/12/21(火) 10:13:51
K&R馬鹿にする奴で有能な奴を見たことがない
0151デフォルトの名無しさん2010/12/21(火) 10:21:15
またカーニハン信者か。
プログラミング作法でも読んどけって感じだな
0152デフォルトの名無しさん2010/12/21(火) 12:32:30
ANSIは型チェックちょっと厳密になった程度という認識なんだけど。
(・ε・) K&Rって、そんなにダメなん?
0153デフォルトの名無しさん2010/12/21(火) 12:33:25
規格票 >> [超えられない壁] >> K&R
0154デフォルトの名無しさん2010/12/21(火) 15:57:59
>>153が真理だな。
規格レベルで話せない奴に限って「K&Rを馬鹿にする奴は…ブツブツ」とか言う
0155デフォルトの名無しさん2010/12/21(火) 16:03:16
(・∀・)ニヤニヤ
0156デフォルトの名無しさん2010/12/21(火) 16:21:11
規格厨 対 K&R厨の戦いか。
どっちも見苦しいな
0157デフォルトの名無しさん2010/12/21(火) 16:23:34
脳内規格じゃないだけ随分とマシになったな
0158デフォルトの名無しさん2010/12/21(火) 17:25:38
n=4のとき、
****
***
**
*
このように表示するプログラムを書いているのですが、ここからどうしてもできません
どなたか教えていただけないでしょうか
#include<stdio.h>
int main(void)
{int n,i,j;
printf("三角形の一辺の長さを入れなさい.\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=i;j++)printf("*");
printf("\n");
}
}
0159デフォルトの名無しさん2010/12/21(火) 17:27:54
4桁の任意の数字があって、その中にある数字が含まれていることをif文であらわす
にはどうすればいいですか?
例えば、5345の中には5が2つある。みたいなのです。
0160デフォルトの名無しさん2010/12/21(火) 17:59:45
ふっふっ
0161デフォルトの名無しさん2010/12/21(火) 18:03:29
>>58
ばーーーーーーか
0162デフォルトの名無しさん2010/12/21(火) 18:05:37
>>158
for(i = n; i > 0; i--) {
for(j = 0; j < i; j++) printf("*");
printf("\n
0163デフォルトの名無しさん2010/12/21(火) 18:20:25
>>159
10で割った余りを数えていく
0164デフォルトの名無しさん2010/12/21(火) 18:58:18
>>159
sprintf()で文字列にして、文字として数える。
0165デフォルトの名無しさん2010/12/21(火) 18:59:14
ほっほっ
0166デフォルトの名無しさん2010/12/21(火) 19:06:43
http://9cguide.appspot.com/14-03.html
[7]文字列の比較 の2番目のプログラムで質問です
forの条件式でi < len + 1となっているのでif (i == len + 1)にはなることはないように思えます
このプログラムは文字列を比較するプログラムとして機能するのでしょうか?
0167デフォルトの名無しさん2010/12/21(火) 19:11:39
もう一度紙に書いて良く考えてみよう
0168デフォルトの名無しさん2010/12/21(火) 19:12:20
>>166
機能するかどうかは動かして試してみればいいじゃん。
ヒントを書いておくと、文字列の一致とは長さも一致している必要があるってこと。
0169デフォルトの名無しさん2010/12/21(火) 19:25:06
>>167-168
うーん、まぁまぁですね。
0170デフォルトの名無しさん2010/12/21(火) 19:31:18
breakに到達しなかった場合はどうやってfor文から抜けるのかな?かな?
0171デフォルトの名無しさん2010/12/21(火) 19:35:19
>>162
ありがとう!
0172デフォルトの名無しさん2010/12/21(火) 19:49:18
一応>>169は別人です

i++でiが12になってからi < len + 1で比較され、12(i)<12(len+1)と条件を満たさなくなり
i=12の状態でfor文を抜けるということでいいんでしょうか?
条件満たすi=11の段階でfor文を抜けると思っていました
0173デフォルトの名無しさん2010/12/21(火) 20:10:55
>>171
いえいえ
0174デフォルトの名無しさん2010/12/21(火) 20:13:09
ふっほっ
0175デフォルトの名無しさん2010/12/21(火) 20:43:55
ふっふっ
0176デフォルトの名無しさん2010/12/21(火) 21:12:21
最近の学生は問題出されると
すぐパソコンに向かってプログラミングしようとする
常識的に考えてフローチャートつくるのが先だろ。
話変わるがソースコードからフローチャートに変換できるツールってない?
自筆で図描くのめんどくさい
0177デフォルトの名無しさん2010/12/21(火) 21:27:15
>>176
書くべきはデータフローだろ
0178デフォルトの名無しさん2010/12/21(火) 22:22:17
>>172
for (A; B; C)

ABCBCB…
0179デフォルトの名無しさん2010/12/21(火) 22:51:13
>>152
K&R はダメだったけど
ANSI でもっとダメになった
C99 でさらに追い打ち

上のほうの人たちが C の何がいいのかをまるでわかっておらず
枝葉末節のために醍醐味をまき散らすように捨て続けてきた

スタック構造をダイレクトに書けるのはいいことで register 渡しまであったのはあれでよかったし
lint は lint で独自の差別化を競えたはずで芽を摘まれなければ今ごろ頼もしかっただろうし
const はせっかく新設までしといて逆がないから write only な論理をきれいに書けないままだし
void* も文法を汚してまで新設しといて予想外に使えないやつだった

long long は待望だったけど 0b や数値定数の空白継続は結局なし
auto 配列の初期化だの可変配列みたいないらんものを大量にマンダトリーにしちまいやがった
0180デフォルトの名無しさん2010/12/21(火) 23:39:31
文字があってその中のある特定の文字の数を数えるには
どのようにプログラムすればいいですか?
プログラムの例を載せてもらえると助かります。
0181デフォルトの名無しさん2010/12/21(火) 23:41:37
あとif文でお願いします
0182デフォルトの名無しさん2010/12/21(火) 23:44:27
void main(void)
{
char moji[]="aiueoaiueoaiueo";
int i,count=0;

for(i=0;moji[i]!='\0';i++){
if(moji[i]=='a'){
//aをカウント
count++;
}
}

printf("aは%d個でつ",count);
}

ばっちりでつ
0183デフォルトの名無しさん2010/12/21(火) 23:47:03
>>180

int charCount(const char* s, char ch)
{
if (*s == '\0')
return 0;
return (*s == ch) + charCount(s + 1, ch);
}

int main()
{
const char* s = "qwertyanxa";
printf("%d\n", charCount(s, 'a'); /* 'a'の個数を数える */
printf("%d\n", charCount(s, 't'); /* 't'の個数を数える */
return 0;
}
0184デフォルトの名無しさん2010/12/21(火) 23:48:37
ありがとうございます
0185デフォルトの名無しさん2010/12/21(火) 23:55:36
>>183
すげぇな。再帰的にカウントしてるなんてとてもじゃないけど思いつかない
カウントする対象の文字が全角だったらどうなるの
0186デフォルトの名無しさん2010/12/21(火) 23:57:40
文字コードが分かってるなら文字単位で再起処理すればいいだけじゃないかな。
スタックの心配はしなくていいか。
0187デフォルトの名無しさん2010/12/22(水) 00:04:13
int charCountSub(int count, const char* s, char ch)
{
if (*s == 0) return 0;
return charCountSub((*s == ch) + count, s + 1, ch);
}

int charCount(const char* s, char ch)
{
return charCountSub(0, s, ch);
}

スタックが心配なときは末尾再帰にすれば。
0188デフォルトの名無しさん2010/12/22(水) 00:05:51
>>187
よくみたらバグってるな。まあいいか。
0189デフォルトの名無しさん2010/12/22(水) 00:07:44
すげぇ
最近C言語とやらを勉強しだしておれにはこのスレ心強すぎる
0190デフォルトの名無しさん2010/12/22(水) 00:08:18
>>187
!!(*s == ch)
こうしなくていいっけ
0191デフォルトの名無しさん2010/12/22(水) 00:12:27
return 0じゃなくてreturn countかな。
0192デフォルトの名無しさん2010/12/22(水) 00:19:23
>>185
Cだけじゃなく関数型言語もやってみな
0193デフォルトの名無しさん2010/12/22(水) 00:45:50
なんでわざわざそんな分かりにくいコードを書くのかと小一時間
0194デフォルトの名無しさん2010/12/22(水) 00:51:45
>>192
関数型言語を勉強するのにオススメは何?
0195デフォルトの名無しさん2010/12/22(水) 00:58:02
Emacs Lisp以外で使われてる関数型言語とかあんの?
0196 [―{}@{}@{}-] デフォルトの名無しさん2010/12/22(水) 01:08:29
プロローグ
0197デフォルトの名無しさん2010/12/22(水) 01:13:05
Common Lisp
0198デフォルトの名無しさん2010/12/22(水) 07:12:50
186でいわれてるスタックの心配ってどういうこと。
スタック領域が飽和状態になって違う領域(ヒープ?)にはみ出てしまうという意味ですか。
初心者の俺には専門用語すぎてカオスすぎる
0199デフォルトの名無しさん2010/12/22(水) 07:15:51
スタックオーバーフローでっgr
0200デフォルトの名無しさん2010/12/22(水) 07:20:13
199
そのスタック領域をオーバーした先はヒープ領域で間違いないですか
0201デフォルトの名無しさん2010/12/22(水) 07:22:08
かんきょうによる
すたっくとひーぷのぽいんたがれんぞくしているとはかぎらない
そもそもひーぷというものがないかもしれない
0202デフォルトの名無しさん2010/12/22(水) 07:24:26
なるほどすっきり^q^
0203デフォルトの名無しさん2010/12/22(水) 08:56:34
コンソールプログラムでメモリを動的確保した時に、
コンソール画面を右上の×で閉じてしまったらメモリって解放されないですよね?
じゃあこの×を押したときに、解放するようにしたいのですが、
良い方法ないでしょうか?
WINAPIを使ったウィンドウのプログラムなら余裕なんですが、コンソールプログラムだと
方法がわかりません。
0204デフォルトの名無しさん2010/12/22(水) 09:02:14
>>203
本当に解放されない?
0205デフォルトの名無しさん2010/12/22(水) 09:03:53
ストリーム関数のエラーを拾って終了処理に移ればいいと思うよ。
0206デフォルトの名無しさん2010/12/22(水) 09:06:59
>>204
自動的に解放されるのでしょうか?

>>205
つまり、scanfとかで停止させている場合、その関数のエラーを
ウィンドウを閉じたと判断して、終了処理させるということですか?
0207デフォルトの名無しさん2010/12/22(水) 09:50:24
>>208
C言語なんてマイナー言語誰も使ってないよw
0208デフォルトの名無しさん2010/12/22(水) 10:09:46
ttp://www.dotup.org/uploda/www.dotup.org1310536.gif
0209デフォルトの名無しさん2010/12/22(水) 11:10:55
C言語はハッカー御用達
0210デフォルトの名無しさん2010/12/22(水) 11:31:20
ハッカー御用達はPerlじゃないの?
0211デフォルトの名無しさん2010/12/22(水) 11:31:40
if分が正常に行われなくて悩んでいます。
環境はVC++です。

{
float length=100;
float length2=200;
float lenlen=length-length2;

if(lenlen>=0){

return false;

}
return true;

}


なぜかfalseが帰ってきてしまいます。
0より小さいはずなのに
ちなみにlenlen>0としたら正常に動きました。

よろしくお願いします。
0212デフォルトの名無しさん2010/12/22(水) 11:38:57
>>211
どーせ書いた処理そのままのせてないんだろう
そんで実際の処理ではlenlenが0になってるんだろう
じっさいのコードでif分岐の直前にlenlenを出力してみたらどうだ?
0213デフォルトの名無しさん2010/12/22(水) 11:40:22
>>211
別のところで未初期化のポインタ使って何か書き込んでないか?
0214デフォルトの名無しさん2010/12/22(水) 11:42:45
>>211
馬鹿なんだから省略とかしちゃだめだよ
ちゃんと全部載せないと
0215デフォルトの名無しさん2010/12/22(水) 11:48:27
たしかに馬鹿なことしてました。
正常に動作してたのに別のところで勘違いしてたみたいでした。
すいませんm(_ _)m
0216デフォルトの名無しさん2010/12/22(水) 11:50:40
うむ、許してやろう
0217デフォルトの名無しさん2010/12/22(水) 12:15:03
>>203
プロセスが終了したら動的にとってきたメモリも解放されると思うけど。
0218デフォルトの名無しさん2010/12/22(水) 14:38:07
>>215
特別に許してやるよ
感謝しろww
02192152010/12/22(水) 15:17:27
>>218
どこの馬の骨とも分からないあんたにそんな事を言われる筋合いは
これっぽっちもないんですけど?
0220デフォルトの名無しさん2010/12/22(水) 15:23:31
ほっほっ
0221デフォルトの名無しさん2010/12/22(水) 15:29:40
ふほほほほほっほほほふfひいいひいいいいいいいいっじじじゃあああああ
02222152010/12/22(水) 15:58:28
キチガイ共乙
0223デフォルトの名無しさん2010/12/22(水) 16:30:01
ふっほっ
0224デフォルトの名無しさん2010/12/22(水) 16:49:14
あずにゃんペロペロ
0225デフォルトの名無しさん2010/12/22(水) 18:05:42
ヘッダファイルの存在価値が全然わからないんですが、何のために
あるんでしょうか?わざわざ別に作る必要ないですよね。
0226デフォルトの名無しさん2010/12/22(水) 18:21:43
ふっふっ
0227デフォルトの名無しさん2010/12/22(水) 18:22:45
>>225
非常に小規模な開発なら、その通り
0228デフォルトの名無しさん2010/12/22(水) 18:28:36
>>227
具体的に教えろ。
0229 ◆QZaw55cn4c 2010/12/22(水) 18:53:52
>>225
ひとつのプログラムを複数の c ファイルで構成するような場合に有用となります。
0230デフォルトの名無しさん2010/12/22(水) 19:20:30
必要ないんだったら一つのファイルにコード書いとけ
0231デフォルトの名無しさん2010/12/22(水) 19:23:52
>>230
説明できないんだ!?w
ばーか。w
0232デフォルトの名無しさん2010/12/22(水) 19:28:18
K&R読んでからもう一回来い
0233デフォルトの名無しさん2010/12/22(水) 19:29:00
>>229
意味がわかりません。
具体例を教えてください。
具体例のわかりやすさは異常。
0234デフォルトの名無しさん2010/12/22(水) 19:29:12
必要ないよ
0235デフォルトの名無しさん2010/12/22(水) 19:29:33
>>233
stdio.h
0236デフォルトの名無しさん2010/12/22(水) 19:30:13
お前ら釣られすぎだろw
0237デフォルトの名無しさん2010/12/22(水) 19:33:47
釣りでしたww
みんな引っかかってくれてありがとうww
0238デフォルトの名無しさん2010/12/22(水) 19:35:37
>>237
どこが釣りなのか教えてくれ
ヘッダファイルをどういうときに使うのか説明できないだろ
0239デフォルトの名無しさん2010/12/22(水) 19:43:40
ふっほっ
0240デフォルトの名無しさん2010/12/22(水) 19:46:10
まさに糞スレ
0241デフォルトの名無しさん2010/12/22(水) 19:50:10
煽って出るものでもない
0242デフォルトの名無しさん2010/12/22(水) 20:21:25
ほっほ
0243デフォルトの名無しさん2010/12/22(水) 22:15:45
ふっほっ
0244デフォルトの名無しさん2010/12/22(水) 23:35:26
どぴゅっどぴゅっ
0245デフォルトの名無しさん2010/12/22(水) 23:50:58
質問だがたとえばchar s[1000000000000];と宣言すると
その時点でスタック領域がオーバーして実行できなくなるが
これを解消するにはメモリを増設することが考えられますが
他に手はないですか
0246デフォルトの名無しさん2010/12/22(水) 23:59:59
>>245
メモリ増設してもムリじゃないか?
0247デフォルトの名無しさん2010/12/23(木) 00:05:04
違うのか汗
0248デフォルトの名無しさん2010/12/23(木) 00:07:22
そのサイズを確保するのは難しいと思うけど、
スタック領域をオーバーするような大きな配列はstaticつけるといいかもね。
0249デフォルトの名無しさん2010/12/23(木) 00:28:04
コンパイルオプションでスタックサイズを変更すればいいけど、その例は大きすぎてダメ。
0250デフォルトの名無しさん2010/12/23(木) 01:19:33
ふっふっ
0251デフォルトの名無しさん2010/12/23(木) 02:10:17
うちの研究所の共有メモリマシンを占有すれば、
ギリギリ取れるサイズだな。
0252デフォルトの名無しさん2010/12/23(木) 02:13:03
ひゃっふっ
0253デフォルトの名無しさん2010/12/23(木) 09:00:14
>>245
1.小さくする
2.ヒープにとる
3.あきらめる
0254デフォルトの名無しさん2010/12/23(木) 10:05:05
スタックってヒープより容量少ないの?
0255デフォルトの名無しさん2010/12/23(木) 10:25:05
普通はね
0256デフォルトの名無しさん2010/12/23(木) 11:30:09
ちょっと気になったので教えてください

int main(){
char a[2]={'1111','?0'};
return 0;
}

単純にこれだけコンパイルしてみたんですが、'1111'の部分、何故かエラーを吐かずに正常終了しました。char型って1バイトですよね?入りきらないと思うんですが…
0257デフォルトの名無しさん2010/12/23(木) 11:40:29
>>256
警告レベルを上げたらでるんじゃないかな警告
あふれちゃうような整数型の変換は普通に通る
規格上は未定義ではあり、値もおかしくなるが
0258デフォルトの名無しさん2010/12/23(木) 11:43:19
Cでは文字定数はint型だからな
もちろんcharには入りきらない
黙って切り捨てられる
0259デフォルトの名無しさん2010/12/23(木) 12:09:35
>>256
1111って4bitしか使ってないじゃん。だからエラーにならないんだよ
0260デフォルトの名無しさん2010/12/23(木) 12:15:37
お前の眼は節穴か?
0261デフォルトの名無しさん2010/12/23(木) 12:43:28
>>260
うん
0262デフォルトの名無しさん2010/12/23(木) 12:53:01
char *hoge = "piyo"
strcpy(hoge, "piyo");

これはダメな気がするんですが動きます
どうしてでしょうか?
0263デフォルトの名無しさん2010/12/23(木) 12:55:00
>>262
文字列のリテラルが書き込み可の領域に置かれてるんだろ。
0264デフォルトの名無しさん2010/12/23(木) 12:57:38
>>262
char *hoge = "piyo" ここで指しているアドレスと
strcpyの第二引数に指定されている"piyo"が指しているアドレスが一緒だから
"piyo"じゃなくて"aaa"とかだとエラーがでるはず。
0265デフォルトの名無しさん2010/12/23(木) 13:01:05
264だがエラーでなければ263の説が正しいです
0266デフォルトの名無しさん2010/12/23(木) 13:21:46
>>263-264
ありがとうございます
たまたま書き込み可の領域に置かれていて、
これが動いてるのは環境依存だから良くないよって事でいいんでしょうか
0267デフォルトの名無しさん2010/12/23(木) 13:26:11
>>266
そう。よくない。
0268デフォルトの名無しさん2010/12/23(木) 13:38:46
ポインタの参照先がリテラル文字列かどうか判別するにはどうすればいいんですか?
0269デフォルトの名無しさん2010/12/23(木) 13:42:45
ソース見ればわかる
0270デフォルトの名無しさん2010/12/23(木) 13:45:11
>>268
どの環境でも使える方法はないよ。
const char* s = "aaaa";
みたいにconstを活用してそういうミスを防ぐくらい。
0271デフォルトの名無しさん2010/12/23(木) 13:46:05
>>269
あなたが馬鹿だということはわかりました
しかしいまだポインタの参照先がリテラル文字列かどうかは判別できません
どうすればいいでしょうか
0272デフォルトの名無しさん2010/12/23(木) 13:52:07
char ss[] = "aaaa";
char* sp = "aaaa";
printf("%p %p",ss,sp);
printfでアドレス表示させれば文字列リテラルがどこらへんに格納されるか把握して
if文でアドレスチェックすればいけなくないか
0273デフォルトの名無しさん2010/12/23(木) 14:05:22
>>271
カス
0274デフォルトの名無しさん2010/12/23(木) 14:10:39
グローバルなハッシュにリテラル文字列のアドレスを格納しておく
マクロを使ってポインタへの代入とアドレスの登録を同時に出来るようにすれば便利だね
0275デフォルトの名無しさん2010/12/23(木) 14:29:42
>>271
「ポインタの参照先を判別」という発想がそもそも C ではサポートされない
RTTI 的なものが欲しければ自分でそういう仕掛けを作ることになる
0276デフォルトの名無しさん2010/12/23(木) 15:27:16
ほっほっ
0277デフォルトの名無しさん2010/12/23(木) 15:49:32
リテラルとRTTIにいったいどんな繋がりが有るというのだろう?
0278デフォルトの名無しさん2010/12/23(木) 16:49:57
ポインタで配列渡したら要素数さえ分からないんだから贅沢言うな
0279デフォルトの名無しさん2010/12/23(木) 17:00:33
ふっふっ
0280デフォルトの名無しさん2010/12/23(木) 17:08:40
ポインタの参照先が何であるか... プログラマは自分でそれを知っているはずである
自分で書いたプログラムなのだから、そこに何が渡されてくるのか、わからないはずがない
従ってわざわざ判別する必要などないはずである
0281デフォルトの名無しさん2010/12/23(木) 17:11:01
人の書いたプログラム使ったり使われたりするし
0282デフォルトの名無しさん2010/12/23(木) 17:20:07
結論 Cは糞
0283デフォルトの名無しさん2010/12/23(木) 17:26:20
>>280
頭悪すぎて哀れになってくるな
解ってたらポインタなんていらねーよ参照でおしまい
0284デフォルトの名無しさん2010/12/23(木) 17:44:57
ポインタを使わなかったらどうだろうか
0285デフォルトの名無しさん2010/12/23(木) 17:50:53
節子、それはCやない
0286デフォルトの名無しさん2010/12/23(木) 17:53:28
>>284
グッドアイデア!
0287デフォルトの名無しさん2010/12/23(木) 17:56:53
ふっほっ
0288デフォルトの名無しさん2010/12/23(木) 18:02:14
ひっひっ
0289デフォルトの名無しさん2010/12/23(木) 18:32:43
ほっほっ
0290デフォルトの名無しさん2010/12/23(木) 18:44:39
キチガイ共乙
0291デフォルトの名無しさん2010/12/23(木) 18:49:31
WikiLeaks板できました
http://raicho.2ch.net/test/read.cgi/wikileaks/1291228726/
0292デフォルトの名無しさん2010/12/23(木) 19:23:22
ふっほっ
0293デフォルトの名無しさん2010/12/23(木) 19:24:30
すぽっすぽっ
0294デフォルトの名無しさん2010/12/23(木) 19:29:53
ほっほっ
0295デフォルトの名無しさん2010/12/23(木) 19:32:41
ぶはっ!選ぶはっ!
0296デフォルトの名無しさん2010/12/23(木) 19:35:46
糞スレ
0297デフォルトの名無しさん2010/12/23(木) 19:36:18
ぽるっぽるっ
0298デフォルトの名無しさん2010/12/23(木) 19:37:30
ぷっぷっ
0299デフォルトの名無しさん2010/12/23(木) 19:38:45
Nakaso
0300デフォルトの名無しさん2010/12/23(木) 19:38:49
Nakaso
0301デフォルトの名無しさん2010/12/23(木) 19:43:58
Nakaso
0302デフォルトの名無しさん2010/12/23(木) 19:46:51
糞スレ
0303デフォルトの名無しさん2010/12/23(木) 19:49:21
↓サドルマン
0304デフォルトの名無しさん2010/12/23(木) 19:53:58
荒らし報告しとくか
0305デフォルトの名無しさん2010/12/23(木) 20:01:52
↑サドルマン
0306デフォルトの名無しさん2010/12/23(木) 20:06:15
嵐豊国しました
0307デフォルトの名無しさん2010/12/23(木) 20:06:23
C言語初心者なのですが、サドルマンとは何ですか?
0308デフォルトの名無しさん2010/12/23(木) 20:08:47
IP抜くの楽しいお
0309デフォルトの名無しさん2010/12/23(木) 20:30:43
ぼいんぼいん
0310デフォルトの名無しさん2010/12/23(木) 20:34:48
push any keyはどうすればいいの?
0311デフォルトの名無しさん2010/12/23(木) 20:35:18
system("pause");
0312デフォルトの名無しさん2010/12/23(木) 20:36:13
printf("push any key");
0313デフォルトの名無しさん2010/12/23(木) 20:42:07
>>311
ホントに止まった
ありがとー!
0314デフォルトの名無しさん2010/12/23(木) 20:44:24
>>313は自分ではありません。
system関数を使わない方法を教えて。
0315デフォルトの名無しさん2010/12/23(木) 20:46:49
system関数は嫌なのか?
何かの課題でsystem関数を使ってはいけないという縛りでもあるのか?
0316デフォルトの名無しさん2010/12/23(木) 20:49:31
>>277
あったら作れとか言わねえよバカ
0317デフォルトの名無しさん2010/12/23(木) 20:50:13
>>314
getchar()
kbhit()
0318デフォルトの名無しさん2010/12/23(木) 21:30:15
標準ライブラリのみという縛りだとしたら簡単には出来ないだろうな
asmで割り込みいじる事になるのか?w

0319デフォルトの名無しさん2010/12/23(木) 21:42:14
system関数って便利だなと思って自分の環境で動かしていたが
別の環境にもっていくとそれが使えなかったりするから正直微妙。
0320デフォルトの名無しさん2010/12/23(木) 21:55:40
>>318
もうちょっと勉強してからおいで。
0321デフォルトの名無しさん2010/12/23(木) 22:03:55
yahooの腐女子と801板の腐女子の違いって?
0322デフォルトの名無しさん2010/12/23(木) 22:09:40
エキスパートCプログラミングってサンプルコードとかある?
0323デフォルトの名無しさん2010/12/23(木) 22:20:19
wikiLeaksって何?
0324デフォルトの名無しさん2010/12/23(木) 22:23:33
>>322
ない
0325デフォルトの名無しさん2010/12/23(木) 22:31:16
携帯電話のC言語って?
0326デフォルトの名無しさん2010/12/23(木) 22:35:35
>>323
正義の味方
0327デフォルトの名無しさん2010/12/23(木) 23:10:28
>>323
「王様の耳はロバの耳」と床屋が叫んだ穴
0328デフォルトの名無しさん2010/12/23(木) 23:22:35
標準入力関数の中でsscanfを愛用してるんだがお前らもそうだろ。
scanfとかいうやつはジョークだ
0329デフォルトの名無しさん2010/12/23(木) 23:24:34
環境変数が分からなさすぎる。
プログラム組んでソフト作っても、プログラムによって
環境変数を変えなきゃならんような事もしないといけないの?
0330デフォルトの名無しさん2010/12/23(木) 23:25:44
sscanfもscanfもジョークだ
0331デフォルトの名無しさん2010/12/23(木) 23:27:57
sscanfは入力した文字列を指定の書式に変換してくれる優れものだぞ。
scanfと一緒にすんなよ
0332デフォルトの名無しさん2010/12/23(木) 23:29:09
>>329
実務では当然
0333デフォルトの名無しさん2010/12/23(木) 23:29:55
>>329
環境変数を設定しなくてもいいようにプログラムに組んでおけばすむことでは
0334デフォルトの名無しさん2010/12/23(木) 23:30:53
>>329
環境変数はOSの話だ。コンパイラの実行パスとかデバッグフラグとか。基本的にC自体とは関係ない。
例えば環境変数に作業用のパス情報があって、それをプログラム中で参照するとかで利用することが可能ってだけ。
プログラムが不要とするならば環境変数に意味はない。
0335デフォルトの名無しさん2010/12/23(木) 23:39:38
>>334
このプログラムはWindows7では動作しないから、環境変数を変えないと
いけないみたいなのあるんかなぁ?
0336デフォルトの名無しさん2010/12/23(木) 23:45:16
パソコンでyoutube見るのも、2ちゃんねるに書き込めるのも、ゲーム
するのも環境変数のおかげだが?やっぱりC言語学ぶなら環境変数や
シェルの知識は必須だよな。
0337デフォルトの名無しさん2010/12/23(木) 23:50:19
UNIX前提かと思ったらwindowsかよ
0338デフォルトの名無しさん2010/12/23(木) 23:50:32
>>335
Windowsに限って言えば、使用するWinAPI(.NET)によって動作可能なバージョンも決まる。
決まるんだが、C標準だけで組むようなコンソールプログラムレベルなら何も気にしないでいい。
OSに依存しないから。
0339デフォルトの名無しさん2010/12/23(木) 23:55:01
>>338
環境変数全部削除したら依存するだろ。
0340デフォルトの名無しさん2010/12/24(金) 00:00:09
>>339
誰が削除しろなんて言ってんだよ…
コンパイラをインストールしてあるなら後は気にすることないだろ。
0341デフォルトの名無しさん2010/12/24(金) 00:00:57
コンパイラが環境変数満たしてればいいのか。
0342デフォルトの名無しさん2010/12/24(金) 00:00:57
「fopen()したら忘れずにfclose()する。」、「malloc()したら忘れずにfree()する」っていうふうに
教わったんだけど、exit()で強制終了する時って、exit()する前に必要な分だけ
fclose(またはfree)しなきゃだめなの?面倒じゃない?
0343デフォルトの名無しさん2010/12/24(金) 00:01:37
>>342
しなくていい。
0344デフォルトの名無しさん2010/12/24(金) 00:07:34
環境変数を巧妙にいじって3Dアクセラレータと同様の機能を可能にする
事とかできますか?
0345デフォルトの名無しさん2010/12/24(金) 00:09:56
exit(1)でもexit(0)でもプログラム上手くいってるわw
二つの違いが全然わからんw
0346デフォルトの名無しさん2010/12/24(金) 00:13:37
>>345
echo ?
echo %errorlevel%
0347デフォルトの名無しさん2010/12/24(金) 00:14:28
>>346
間違えた

echo $?
echo %errorlevel%
0348デフォルトの名無しさん2010/12/24(金) 00:16:06
>>342
exitなどでプログラムが終了するときは、そのプロセスで使ったメモリはすべて解放されます。
なのでfreeでメモリを解放しなくても問題ないです。が、常駐するプログラムではそうはいかないので
クセをつけるという意味で使ったメモリは解放するという習慣を身につけたほうがいいでs。
0349デフォルトの名無しさん2010/12/24(金) 00:17:26
メモリ何て開放する必要ないだろ、メモリ何て2ギガあれば
無限みたいなもんだし。
0350デフォルトの名無しさん2010/12/24(金) 00:18:50
富豪的プログラミングと言っても、
Cなんてシビアな組み込みとかでしか使わないんじゃね
0351デフォルトの名無しさん2010/12/24(金) 00:18:59
4メガしかない環境でやってるんで無理です
0352デフォルトの名無しさん2010/12/24(金) 00:19:41
>>349
お前、話が理解できてないなら無理にレスしなくていいぞ
0353デフォルトの名無しさん2010/12/24(金) 00:22:14
>>351
ゲーム機かよwww
0354デフォルトの名無しさん2010/12/24(金) 02:22:42
四則演算プログラムを作りました。
コマンドラインから 「"ファイル名" 4 + 5 - 7 * 8」 とすると計算がめちゃくちゃになります。
*(アスタリスク)を他のx(エックス)などにすると大丈夫。

質問はコマンドラインから *(アスタリスク)は認識にもともと難があるものですか。
0355デフォルトの名無しさん2010/12/24(金) 02:40:15
>>354
認識に何があるというか ワイルドカードという役割がある
だから *だけじゃ *がそのまま argvに入ってこない
0356デフォルトの名無しさん2010/12/24(金) 02:45:44
>>354
>>355の言う通りで、「"ファイル名" "4 + 5 - 7 * 8"」でやってみ
0357デフォルトの名無しさん2010/12/24(金) 04:24:17
void remove(char *buf)//配列のアドレスを受け取る
{
int n;
char *p;
char *q;

for(p=buf; ISBLANK(*p);p++) //#define ISBLANK(c) ((c)==' '||(c)=='\t')
;
q=buf;
n=strlen(p)+1;
while(n--)
*q++=*p++;
}

渡される配列の一文字目が空白の場合、空白を取り除く処理をしている関数です
whileで処理されているところがわからないので教えてください
0358デフォルトの名無しさん2010/12/24(金) 04:31:08
>>357
最初に出現する空白文字を取り除いた後の文字数をnに代入し、
nが0になるまで(処理後の文字列の先頭にくるまで)巻き戻しながら*q(=buf)にコピーしている。
0359デフォルトの名無しさん2010/12/24(金) 05:04:38
図々しいようですがブロックごとに説明をつけてくれませんか
0360デフォルトの名無しさん2010/12/24(金) 05:15:59
死ね
0361デフォルトの名無しさん2010/12/24(金) 05:16:31
>>358
間違ってるな

×処理後の文字列の先頭にくるまで巻き戻しながら
○処理後の文字数分だけ先頭から
03623542010/12/24(金) 06:49:53
>>355-356
めちゃくちゃ勉強になりました。 深夜にありがとうございました。
0363デフォルトの名無しさん2010/12/24(金) 06:50:48
>>357
なんか色々バグってね?

void remove(char *buf)//配列のアドレスを受け取る
{
int n;
char *p;
char *q;

for(p=buf; ISBLANK(*p);p++) //#define ISBLANK(c) ((c)==' '||(c)=='\t')
;
q=p;
n=strlen(q)+1;
while(n--)
*p++=*q++;
}

だろ
0364デフォルトの名無しさん2010/12/24(金) 06:55:56
>>363
間違った

void remove(char *buf)//配列のアドレスを受け取る
{
int n;
char *p;
char *q;
for(p=buf; ISBLANK(*p);p++) //#define ISBLANK(c) ((c)==' '||(c)=='\t')
  q=p;
p=buf;
n=strlen(q)+1;
while(n--)
  *p++=*q++;
}
0365デフォルトの名無しさん2010/12/24(金) 07:00:28
なんでpとq無意味に入れ替えてんの?
0366デフォルトの名無しさん2010/12/24(金) 07:08:15
>>357
取り除く空白は一文字だけじゃないだろ
0367デフォルトの名無しさん2010/12/24(金) 07:39:21
while(*q++ = *p++);ならstrlen()とかいらないのに
0368デフォルトの名無しさん2010/12/24(金) 08:12:10
ちゃんと書いてくれ!俺は真剣に悩んでいるんだ
03697552010/12/24(金) 08:22:41
void aaa(char *a)
{
char* b = a;

while (*a==' ' || *a=='\t') {a++;}

while (*a!=0) {*b++ = *a++;}
*b=0;
}

そんな難しいことかぁ〜〜??(w
って思う。

なんかISBLANKとかマクロ作って、しかもそれをforの中に入れちゃって、
簡単な事をわざわざややこしくしてるだけでバカバカしいと思う。個人的に。

戻り値で何かするわけでも無いのに int main に絶対的に固執したり、mainの最後なのにわざわざ free したりとか、
forやwhileに{}を使わなかったりとか、
そういうバカバカしい「かっこつけ・ハッタリ」かますから、そういう小さい微妙な読みづらさが積み重なって、全体的にプログラムが意味不明になるってのにw

たとえば、これみたいな「ど〜〜〜ってことない処理w」でも、364やら363やら357やらみたいに「あれ?あれ?」ってなっちゃってて、
ほんとバカバカしい文法だなぁ〜〜って思うw
もっと普通に、素朴に書けば、な〜〜んてことない簡単なことなのにw
わざわざ「通っぽい文法」で書いて、自分で自分を混乱させてるという… あ、あほや…w
0370デフォルトの名無しさん2010/12/24(金) 08:32:09
>>357はどう見ても自分で考えてない、どっかのコードの丸写しなのにw
0371デフォルトの名無しさん2010/12/24(金) 10:38:22
>>369
コードを修正するなら挙動が異なる部分を言わないと。
>>357はこの関数にバグがあると予測して調査をしていた可能性がある
0372デフォルトの名無しさん2010/12/24(金) 14:39:32
>>368
最初の空白以外の文字を見つける
それ以降を前方に移動する

処理の内容はこの2つだけだ
オレだったらわかりやすく以下のようにする

while (!isgraph(*cp)) cp++;
memmove(cq, cp, strlen(cp)+1);
0373デフォルトの名無しさん2010/12/24(金) 14:44:21
>>357は参考書のサンプルにコメントで説明を補っただけです。
確かにこの参考書は他のものと比べてわかりづらい印象です。
参考書なのでバグがあることは想定外ですね
一回main()から書き出してデバッグしてみます
0374デフォルトの名無しさん2010/12/24(金) 15:04:49
まぁどうせ写し間違いなんだろうけどね
0375デフォルトの名無しさん2010/12/24(金) 15:06:55
バグってるのは>>363の頭だけだろw
0376デフォルトの名無しさん2010/12/24(金) 16:55:58
ほっほっ
0377デフォルトの名無しさん2010/12/24(金) 17:46:39
Ruby関連のスレ行ったら冷たくあしらわれた・・・orz
C言語にかなうプログラミング言語ありませんよね??
ゲームを開発するのはほとんどCまたはC++ですよね?
0378デフォルトの名無しさん2010/12/24(金) 18:16:01
全ての言語はC言語からインスピレーショ受けてるよ。
Cに勝る言語はない。ドラクエもFFもC言語のおかげなのかなぁ?
0379デフォルトの名無しさん2010/12/24(金) 18:21:18
使いどころを選ぶ気がないのなら
CもRubyもゴミにしかならん
0380デフォルトの名無しさん2010/12/24(金) 19:04:20
アセンブリ最高
0381デフォルトの名無しさん2010/12/24(金) 22:27:05
.NETは結構です
0382デフォルトの名無しさん2010/12/24(金) 22:42:08
>>377
ゲームなんて言い出すと C でカバーできる範囲は狭っ苦しいぞ
遊びには必ずしも CPU やメモリが出てくるとは限らないからな
0383デフォルトの名無しさん2010/12/24(金) 22:58:21
いるよなぁ、こういう奴
0384デフォルトの名無しさん2010/12/24(金) 23:18:13
実数を指数と価数に分離する方法を教えてください。
0385デフォルトの名無しさん2010/12/24(金) 23:19:19
Javaには抽象ウィンドウツールキットがあるが
CやC++はグラフィック関連の機能をまったくもっていない。
マルチスレッドへの配慮も足りていない。
科学技術計算ではFORTRANの方が速い場面も多い。
10進演算を必須とする世界ではCOBOLは今なお強力だ。
etc...

そんなわけで、>>379の言うとおりだと思う。
0386デフォルトの名無しさん2010/12/24(金) 23:20:00
>>384
浮動小数点型の内部構造について知る
0387デフォルトの名無しさん2010/12/25(土) 00:13:01
ubuntu10.10などのリナックスなら、
/dev ディレクトリにある fb0 ってファイルに画像を描くだけで、画面に絵を出せますよ。
printfくらい簡単に画面に点を打てます。

(特別なライブラリは必要ありません。)

http://codepad.org/jMUT3eG5



起動方法(ubuntu10.10の場合)
Ctrl + Alt + F1〜F6 を押して、tty表示にします。(フレームバッファでの描画は、xwindow上のコンソールでは動かない)

コンパイルしたプログラムをスーパーユーザー権限で起動します
sudo ./a

これだけでグラフィックを扱えます。
じつにシンプル。 printfよりシンプルかもしれません。
むかしのPC98のDOSよりシンプルかもしれません。


余談:カーネルのコンパイルオプションによっては、フレームバッファに対応してない場合もあります。
また、カラーも16bitや8bitかもしれません。 また、画面サイズも1920x1080じゃない環境の人もいるでしょう。
そういう何処でも動くコードを目指すなら、ライブラリを活用してもいいですが、単に個人用の動けばなんでもいいってコードなら、これで十分絵が描けます。
0388デフォルトの名無しさん2010/12/25(土) 03:29:27
if(!isdigit(*s))
↑
これどういう意味(書き方)か教えてください
0389デフォルトの名無しさん2010/12/25(土) 03:32:14
if(isdigit(*s)==0)と同義
0390デフォルトの名無しさん2010/12/25(土) 03:33:24
>>388
ポインタsが指し示すメモリ上の値を文字として評価した時に
数字ではない事を判定している
0391デフォルトの名無しさん2010/12/25(土) 07:33:08
>>388
! は否定(NOT)、真なら偽、偽なら真と評価する
isdigit()は数字ならば真を返す

つまりif文としては、
*sの指す文字が数字なら(isdigit()は真だがそれを否定するので)偽
*sの指す文字が数字以外なら(isdigit()は偽だがそれを否定するので)真
0392デフォルトの名無しさん2010/12/25(土) 10:40:26
正直いって
if(!isdigit(*s)) こういう書き方は見る人にとってはわかりづらい。
0393デフォルトの名無しさん2010/12/25(土) 11:03:42
分かり辛いと思う人の頭が悪いだけだと思うよ
0394デフォルトの名無しさん2010/12/25(土) 11:04:29
sの型は何だ?
charならunsigned charにキャストしろよ
0395デフォルトの名無しさん2010/12/25(土) 12:06:11
>>393
いろんな人がみるからそういう人のために配慮して書けといってるんだ
わかったか?
0396デフォルトの名無しさん2010/12/25(土) 12:07:44
iと!が重言みたいな気持ち悪さを醸し出してる
0397デフォルトの名無しさん2010/12/25(土) 12:23:04
いろんな人w
0398デフォルトの名無しさん2010/12/25(土) 12:26:04
struct hoge {
int data;
struct hoge *next;
}

みたいな片方向リストで任意の要素nを削除するにはどうすればいいんですか

先頭から順にを探す
↓
目的の要素nが見つかる
↓
ポインタを繋ぎかえようとするが、nの前にある要素へのポインタがないので???となっています
0399デフォルトの名無しさん2010/12/25(土) 12:30:53
>>395
じゃあどう書けばいいのかやってみて
0400デフォルトの名無しさん2010/12/25(土) 12:34:35
>>398
探す時に1つ前のポインタも残しておけば良い
0401デフォルトの名無しさん2010/12/25(土) 12:43:20
>>399
可読性を向上させたいなら389の例がいいんじゃないかな。
0402デフォルトの名無しさん2010/12/25(土) 12:48:44
きっとこう書けばいいに違いない

#define not !

if (not isdigit(*s))
0403デフォルトの名無しさん2010/12/25(土) 12:49:41
>>401
分かりにくくなる
色んな人が見るんだから配慮しろ
0404デフォルトの名無しさん2010/12/25(土) 12:50:28
#define isnotdigit(x) (!isdigit(x))
0405デフォルトの名無しさん2010/12/25(土) 12:51:11
真偽値を比較で判定とか可読性下げるだけ
0406デフォルトの名無しさん2010/12/25(土) 12:52:24
>>403
お前それいいたかっただけだろw
0407デフォルトの名無しさん2010/12/25(土) 12:53:38
! くらい慣れておけよ
プログラマ失格だ
0408デフォルトの名無しさん2010/12/25(土) 12:55:22
>>402
そういう言語もあるね
0409デフォルトの名無しさん2010/12/25(土) 12:57:10
C++なら実はnotが使える
0410デフォルトの名無しさん2010/12/25(土) 12:58:57
仕事先でソース書いた後にコーディング規約チェッカーツールとか使わないの?
if(!isdigit(*s)) とか書いても可読性の観点から違反扱いされて
書き直されるよ。
0411デフォルトの名無しさん2010/12/25(土) 13:00:29
>>409
あ、ホントだ
0412デフォルトの名無しさん2010/12/25(土) 13:00:52
どんな糞ツールだよ
というか、真値が一意に定まらないCでは
真偽を比較で確かめる癖付けるのは危険なんだよ
0413デフォルトの名無しさん2010/12/25(土) 13:02:14
>>412
上手く動かない反例を見せてくれ
0414デフォルトの名無しさん2010/12/25(土) 13:06:59
偽との比較は全て動くが
真との比較が危険

if (isdigit('9') == 1) {
 printf("hoge\n");
}

これは環境によっては動かない

当然これは != 0 にするのが正しい
しかし果たしてこれは可読性が高いと言えるだろうか?
二重否定だし、それに真な時に != で比較して偽な時に == で比較する事になる
0415デフォルトの名無しさん2010/12/25(土) 13:10:02
!=0なら書かなくて良いだろ
0416デフォルトの名無しさん2010/12/25(土) 13:11:14
偽の時だけ == 0 と書くとか何それ気持ち悪い
0417デフォルトの名無しさん2010/12/25(土) 13:11:52
特定の場合に0を返すように設計してるんだから、
それをif文の条件にしても可読性が低いってことにはならないと思うけど
0418デフォルトの名無しさん2010/12/25(土) 13:12:03
>>415
それで可読性あると思う奴なら
if(!isdigit(*s))でも問題ないだろ
0419デフォルトの名無しさん2010/12/25(土) 13:12:42
機械の可読性を言ってるんじゃないけどな
0420デフォルトの名無しさん2010/12/25(土) 13:13:29
Windows プログラミングで == TRUE と書いてる奴をよく見る
こういう奴はこのコードの危険性が何も分かってない
API の仕様では BOOL で真を返す場合は「0 以外を返す」と書かれている
動いてるのはたまたまだ
比較方式はこういう奴を量産するだけ
0421デフォルトの名無しさん2010/12/25(土) 13:16:43
>>420>>414
だれも真の値が1だとは思ってないから。
0422デフォルトの名無しさん2010/12/25(土) 13:18:40
!=0でも読みにくいつってんだろ
0423デフォルトの名無しさん2010/12/25(土) 13:22:55
>>400
できました
前のポインタを保持しながらループ回せばいいんですね
ありがとうございました
0424デフォルトの名無しさん2010/12/25(土) 13:23:51
比較する際に次のノードの要素と比較するという方法もある
0425デフォルトの名無しさん2010/12/25(土) 13:49:41
新しいc規格とかはおいといて
もともとc言語にbool型変数は無く,0を偽,非0を真と決めているだけ
isdigitの戻り値を真偽値とみるか整数値とみるかなんだけど
関数名がis〜だから真偽値と見てもいいような気がする

だがfopenおまえらはダメだ
!=NULLを省略するんじゃねぇぇぇぇぇぇ
0426デフォルトの名無しさん2010/12/25(土) 13:52:11
いいじゃん!fpしても
0427デフォルトの名無しさん2010/12/25(土) 13:56:56
!=NULLは二重否定に見えるが
!だとポインタなのに真偽値に見える
どちらも微妙なのでどちらでもいいわって感じだが
真偽値にしか!を付けられない言語も多いし
!=NULLで慣れた方が応用は効くのかなとは思う
0428デフォルトの名無しさん2010/12/25(土) 14:11:10
0の否定は真になるけど、非0の否定が偽になるとは限らないのが
ややこしいので、いつも == や != 使ってます><
0429デフォルトの名無しさん2010/12/25(土) 14:12:45
!(非0) は常に偽だぞ・・・
0430デフォルトの名無しさん2010/12/25(土) 14:14:15
え、そうなの?勉強になりました><;
0431デフォルトの名無しさん2010/12/25(土) 14:15:34
比較はこういう奴を量産するだけだと証明されたな
0432デフォルトの名無しさん2010/12/25(土) 14:17:58
!(非0)が0、!(0)が1に慣れちゃってるから
C#とかやると少しイラっとするな
0433デフォルトの名無しさん2010/12/25(土) 14:22:02
最近はCでも条件式を計算式に埋め込まなくなったな
(三項演算子以外では)
0434デフォルトの名無しさん2010/12/25(土) 14:27:21
比較はー比較はーって言ってる奴、頭悪そうに見えるんだが
0435デフォルトの名無しさん2010/12/25(土) 15:00:48
C言語に興味あります。
勉強しようと思うのですが
オススメの勉強用の本があれば
教えでいただけないでしょうか?
よろしくお願いします。
0436デフォルトの名無しさん2010/12/25(土) 15:01:34
K&R
0437デフォルトの名無しさん2010/12/25(土) 15:34:04
明解C
0438 ◆QZaw55cn4c 2010/12/25(土) 15:58:34
>>435
ひとつの本だけで満足しない、と決心すればそれはもうどんな本でもいいから立ち読みしてよさそうな本を今日にでも買ってコンパイラはBorland C++ 5.5 でもすぐにインストールしてれっつごーです
思い立ったが吉日ですわからなかったらここできけばいいもうなにも躊躇することはありません
0439デフォルトの名無しさん2010/12/25(土) 16:10:16
Borland C++ Compiler は使うの面倒臭くないか
製品版という事なら別だが、フリーのを意図してんでしょ?
今なら VC++ EE でいいかと
0440デフォルトの名無しさん2010/12/25(土) 16:16:05
どの辺が面倒くさいんだろう
0441デフォルトの名無しさん2010/12/25(土) 16:26:54
IDEがない
まあその方が教育的という観点もあるかもしれないけど
0442 ◆QZaw55cn4c 2010/12/25(土) 16:29:40
>>435
>>439
ああコンパイラもういんどうずでうごくやつならなんでもいいやLSI-CはちょっとまずいかもしれないけどねそうだねVC++ExpressEditionでもいいやねもうなにも躊躇することはないいけいけどんどん
0443デフォルトの名無しさん2010/12/25(土) 16:31:31
bccってデフォCなの?VC++はデフォC++だよね。
0444デフォルトの名無しさん2010/12/25(土) 16:32:54
>>441
C言語を始めようとかCPadとか使えるだろ
それに最初は別にIDEなくても問題ないと思うけど、cygwinは勧めないな
仮想マシンにubuntu入れてgcc使った方がマシ
0445デフォルトの名無しさん2010/12/25(土) 16:38:52
>>443
拡張子で区別されるがそういう意味ではなくて
0446デフォルトの名無しさん2010/12/25(土) 16:50:42
(´・ω・`)C
0447デフォルトの名無しさん2010/12/25(土) 17:53:25
書店寄っていくつか見てみます
コンパイラっていうのも調べてみます。
ありがとうございました。
0448デフォルトの名無しさん2010/12/25(土) 17:57:39
そしてドラゴンブックを買ってくる447であった
0449デフォルトの名無しさん2010/12/25(土) 18:08:20
このご時世、本なんて不要だと思うけどな。標準ライブラリの使い方くらいネットにいくらでも転がってるし。
学習に足りないのはおそらく「お題」だろうが、それも簡単に見付かる。
自分が便利だなと思うものを真似すればいい。最初から全部ではなく部分的にな。
0450デフォルトの名無しさん2010/12/25(土) 18:20:21
ググったソースをコピペして500円というビジネス。
0451デフォルトの名無しさん2010/12/25(土) 18:25:24
>>449
普段、本とか読まないだろ?
0452デフォルトの名無しさん2010/12/25(土) 18:29:53
>>451
なんで?小説みたいな創作物は読むけど。
0453デフォルトの名無しさん2010/12/25(土) 18:39:21
大丈夫!Wikipediaの情報だよ!
0454デフォルトの名無しさん2010/12/25(土) 18:42:05
小説だってネットにいくらでも転がってる
0455デフォルトの名無しさん2010/12/25(土) 18:44:39
Cの勉強しようと思ってコンパイラを探しているのですが
Borland C/C++ CompilerとVisual Studioだとどちらがオススメでしょう
あとCygwinについても教えていただけたらありがたいです
0456デフォルトの名無しさん2010/12/25(土) 19:00:15
>>455
個人的にはgcc
0457デフォルトの名無しさん2010/12/25(土) 19:19:15
>>455
悪いことは言わん。MinGWにしとけ。
gccの使い方は覚えておいて絶対に損しない。
0458デフォルトの名無しさん2010/12/25(土) 19:20:22
Visual Studio はフリーでも統合開発環境(IDE)があるから楽
でも勉強のためコンパイラ直接扱いたいのなら
Borland C/C++ Compiler か gcc (MinGW) を使うのもあり
ただし、後々 C++ もやるなら Borland C/C++ Compiler は古いのでおすすめしない

Cygwin は UNIX のシェルを Windows に移植した「ような雰囲気」の物
gcc もインストール選択したら使える
UNIX/Linux 使った事あるなら薦められるけど
使った事無いならどうだろう?
コンパイルするだけならいいのかな
0459デフォルトの名無しさん2010/12/25(土) 19:23:23
C言語を学ぶついでにUNIX系のコマンドラインツールに触れておくのも悪いわけではないし別にいいんじゃない
俺はcygwinおすすめ
0460デフォルトの名無しさん2010/12/25(土) 19:32:05
>>459
それだったら仮想でいいからLinux環境作ったほうがマシ。
Cygwinは>>458の言うとおりUNIXもどきでしかない。
0461デフォルトの名無しさん2010/12/25(土) 19:33:16
Visual Studioでいい
0462デフォルトの名無しさん2010/12/25(土) 19:37:46
>>456-461
ありがとうございます
MinGWかCygwinを使って見ようと思います
0463デフォルトの名無しさん2010/12/25(土) 19:40:36
いえいえ
0464デフォルトの名無しさん2010/12/25(土) 19:51:32
CygwinでMinGW使ってもいいんだぜ
gcc -mno-cygwin でMinGWが使われる
0465デフォルトの名無しさん2010/12/25(土) 20:41:56
Cコンパイラを探してるレベルの人間にCygwinを勧めんなカスどもが
0466デフォルトの名無しさん2010/12/25(土) 20:59:04
カスとは失礼な
俺はgccとcygwinを一緒に使い始めたぞ
ある程度の厳しい状況は作るべきだ
そんな事してるから最初が簡単で軟弱なクレクレ君が出てくるんだ
0467デフォルトの名無しさん2010/12/25(土) 21:00:32
お前みたいな奴が回答者として一番いらねーんだよ。質問スレで何してんだボケ
0468デフォルトの名無しさん2010/12/25(土) 21:01:48
>>455
LSI C-86試食版
0469デフォルトの名無しさん2010/12/25(土) 21:02:03
>>455
1.ubuntu10.10のisoをダウンロード
2.CD-Rなどに焼く
3.再起動してCDから起動
4.インストールを選択
5.windowsを残したままインストールする項目をマウスで選択。
6.適当にマウスでボタン押してって質問に答えてインストール開始。

7.再起動して起動メニューからubuntuを選択
8.スタートメニューから端末(コマンドプロンプトのこと)を選択
9.gcc(Cコンパイラーのこと) をインストール
sudo apt-get install gcc

10.kdevelop(エディタのこと)をインストール
sudo apt-get install kdevelop

適当にエディターでプログラムを書いて、適当な名前で保存( aaa.c など)
コンパイル方法
gcc -o aaa aaa.c

そのプログラムを実行する方法
./aaa

余談:ディレクトリの移動は cd ○○、DIRは ls、 ディレクトリの作成は mkdir ○○、 ファイルの削除は rm ○○、 ディレクトリの削除は suro rm ○○ -r
コピーは cp 元 先、 移動は mv 元 先、 名前の変更は mv 元 先、 math.h 入りソースのコンパイルは gcc -lm、 c++のソースのコンパイルは gcc -lstdc++
0470デフォルトの名無しさん2010/12/25(土) 21:03:54
そもそも何を基準に勧めればいいのかわからん
規格に準拠してるかどうかか?
C89でいいならVC, BCC, GCC全て準拠しているから導入のしやすさと好みでいいんじゃないの
C99ならgccほぼ一択な気がする
0471デフォルトの名無しさん2010/12/25(土) 21:04:42
C99で学習する奴なんているのかよ
0472デフォルトの名無しさん2010/12/25(土) 21:06:35
>>467
質問スレだった
反省...

ただなんもググらずに聞いて口開けて待ってる奴もいることは分かってほしい
なんか一回ぐらい難しい解決の経験をしないといけないような気がする
0473 ◆QZaw55cn4c 2010/12/25(土) 21:08:39
>>464
gcc4 からはだめなよう。
0474デフォルトの名無しさん2010/12/25(土) 21:12:33
ほっほっ
0475デフォルトの名無しさん2010/12/25(土) 21:13:18
趣味であえて面倒くさい方を選ぶなんてアホ
そういう意味では、Cという選択自体が微妙だが
0476デフォルトの名無しさん2010/12/25(土) 21:15:56
cygwin使うぐらいならLinux使った方が今後共に楽だよな
0477デフォルトの名無しさん2010/12/25(土) 21:19:43
>>475
まあ趣味でアセンブリやるよりはいんじゃねぇかw
0478デフォルトの名無しさん2010/12/25(土) 21:37:48
ふっほっ
04794552010/12/25(土) 21:41:19
今までは学校のCentOSで色々やってたんですが
年末年始は使えないんで家のPC(windows)でできたら便利だなと思ってたんですけど
やっぱりLinux環境用意した方がいいんですかね
0480デフォルトの名無しさん2010/12/25(土) 21:47:32
別に。Cの開発環境はWindowsで揃う
あと性能が良いPCならVirtualBox+Ubuntuで何でも出来るよ
ネットワークの設定は勝手にやってくれるし、ホストからのコピペとかフォルダの共有も出来る
0481デフォルトの名無しさん2010/12/25(土) 22:04:13
c++とかc+1のようにインクリメントした値は変数に格納しなくても
その値は保持されるんですか?

説明がわかりづらいですが解答よろしくおねがいします
0482デフォルトの名無しさん2010/12/25(土) 22:05:59
c++はインクリメントした値を変数に格納しますよ
c+1は格納しませんので保持されません
0483デフォルトの名無しさん2010/12/25(土) 22:09:27
c++ は c+=1 のシンタックスシュガー
c+=1 は c=c+1 のシンタックスシュガー
c+1 は c+1 を計算してるだけで 変数c は上書きされない
0484デフォルトの名無しさん2010/12/25(土) 22:10:43
>>483
x=c++;
x=(c+=1);
違うよね
0485デフォルトの名無しさん2010/12/25(土) 22:11:11
なるほど!
ありがと
0486デフォルトの名無しさん2010/12/25(土) 22:11:57
++c
0487デフォルトの名無しさん2010/12/25(土) 22:15:43
>>484
そうだったなと反省しつつ
c言語で前置と後置の評価順って決められていたっけ?
0488デフォルトの名無しさん2010/12/25(土) 22:19:18
はい
0489デフォルトの名無しさん2010/12/25(土) 22:33:12
c = 1;
a = c++;  これは aには1が入る

c = 1;
a = ++c;  これは aには2が入る
0490デフォルトの名無しさん2010/12/25(土) 23:15:00
〜はシンタックスシュガーとか言う奴に限って知識レベルが中途半端
0491デフォルトの名無しさん2010/12/25(土) 23:21:25
なにか問題でも?
0492デフォルトの名無しさん2010/12/26(日) 00:06:01
>>491
問題あるから言われてんだろ
中途半端な知識は人を惑わすから書くなカス
0493デフォルトの名無しさん2010/12/26(日) 00:30:58
シンタックスシュガーなんて言い方したばっかりに、粘着の対象にされてるわろたwww
0494デフォルトの名無しさん2010/12/26(日) 00:34:06
>>493
アホか
0495デフォルトの名無しさん2010/12/26(日) 00:52:51
え?
0496デフォルトの名無しさん2010/12/26(日) 00:57:50
シンタックスシュガーに噛み付く奴w
0497デフォルトの名無しさん2010/12/26(日) 01:18:37
シンタックス・シュガー氏
0498デフォルトの名無しさん2010/12/26(日) 01:30:28
K&Rは後置インクリメント/デクリメントの優先順位が間違っていて困るのは最新版で修正されたの?
0499デフォルトの名無しさん2010/12/26(日) 01:33:43
c++は前置は+1されてから評価され後置は評価されてから+1されるけど
c言語はそういう規定が無いから注意しろって言われた気がするんだがなぁ
0500デフォルトの名無しさん2010/12/26(日) 01:47:29
んなわけあるかい^^
Cではただインクリメントを行うだけの時のコストが一緒という話じゃないのか?
C++ではPOD型でないとき後置は前置よりもコストがかかる(ことがある)。
0501デフォルトの名無しさん2010/12/26(日) 01:57:06
PODのコストってなんだよw
0502デフォルトの名無しさん2010/12/26(日) 02:05:57
知識の最高到達点、ギリギリ知ってる語彙で戦うのが2ちゃんねる
0503デフォルトの名無しさん2010/12/26(日) 02:09:51
Cで評価順が規定されてないってほんと?
05045002010/12/26(日) 02:25:54
ありゃま。インクリメントのコストがわからない人がいたか。
C++ Coding Standards 第28章 参照ね^^
05055002010/12/26(日) 02:32:06
>>503
Cで評価順が規定されないのは「演算子の非演算数に対する評価順序」。
>>499の言ってることとは無関係。

0506デフォルトの名無しさん2010/12/26(日) 02:41:31
馬鹿ばっか^^
0507デフォルトの名無しさん2010/12/26(日) 02:48:27
ほんとばかばっか^^
0508デフォルトの名無しさん2010/12/26(日) 02:49:41
俺以外全部馬鹿
0509デフォルトの名無しさん2010/12/26(日) 02:50:23
バカ祭り^^
0510デフォルトの名無しさん2010/12/26(日) 02:58:20
今夜も強烈なの
0511デフォルトの名無しさん2010/12/26(日) 03:11:47
Cで2進数から16進数の変換をビット演算使ってやる方法教えてください。
0512デフォルトの名無しさん2010/12/26(日) 03:49:30
その質問の言い方だといくつかの意味に取ることが出来るのは気づいてるのかな
そのうちのひとつは有名でFAQにすら挙げられてる
http://www.kouno.jp/home/c_faq/c20.html#10

これであればはっきり言ってクソミソに言われバカにされるのがオチ(実際、>>511のような書き方するくらい
だからアタマ悪いんだろうなと思う)なので、質問の求めてる内容がこれでないなら質問をもっと的確に書くといい
0513デフォルトの名無しさん2010/12/26(日) 03:52:15
質問者がバカなのはしょうがないけど
回答者もバカだからなぁ、ここ。
0514デフォルトの名無しさん2010/12/26(日) 04:48:54
>>512
これであれば、がどこにかかるかわからないんだけど、ちゃんと自分が貼ってあるリンク先読んだ?
0515デフォルトの名無しさん2010/12/26(日) 09:43:39
>>511
変換って何さ?16進数として表示したいってことか?
やりたいことが伝わらないから皆答えようがないんだよ。
断片でもいいからソースを示せ。
0516デフォルトの名無しさん2010/12/26(日) 10:12:54
>>511
char bin[] = "011101101101"
unsigned int hex = 0;

for(char* p = bin; p; p++){
if(p == '0') hex = hex << 1;
else if(p == '1') hex = hex << 1 + 1;
else exit(0); // detect invalid character
}

printf("(bin)%s = 0x%x\n", bin, hex);
0517 [―{}@{}@{}-] デフォルトの名無しさん2010/12/26(日) 12:44:47
これって無限ループにならないんだな。ハマッたぜksg
do{
  puts("hello");
  continue;
} while(0);
0518デフォルトの名無しさん2010/12/26(日) 12:57:05
while(1)に修正してみろ。コンパイラ持ってないが俺の脳内はコンパイラより賢い
0519デフォルトの名無しさん2010/12/26(日) 13:00:04
>>518
そういう話じゃないだろ。
0520デフォルトの名無しさん2010/12/26(日) 13:19:09
ワロタ
0521デフォルトの名無しさん2010/12/26(日) 13:20:22
continue; はループの先頭に戻るんじゃないと聞いて驚く奴は沢山見たが
実際にそれにはまったやつを見るのは初めてだ。
0522デフォルトの名無しさん2010/12/26(日) 13:22:27
do〜whileをちゃんと使える男の人ってかっこいい
0523デフォルトの名無しさん2010/12/26(日) 13:25:57
do while()とcontinueを組み合わせて使ったことがないんで、
いざ「どう動く?」とか言われても即答できない。
0524デフォルトの名無しさん2010/12/26(日) 13:31:09
それcontinueを分かってないだけだろ。。
0525デフォルトの名無しさん2010/12/26(日) 13:50:02
クスクス
0526デフォルトの名無しさん2010/12/26(日) 13:51:39
>>525
もうそれは許してやれよ、あの子は声優じゃないから仕方ない
0527デフォルトの名無しさん2010/12/26(日) 13:51:40
なにがおかしいんや!
0528デフォルトの名無しさん2010/12/26(日) 14:23:02
俺もこれは知らなかった
0529デフォルトの名無しさん2010/12/26(日) 14:25:10
もともと do{ }while() をほとんど使わないから。
どうでもいい気はする
0530デフォルトの名無しさん2010/12/26(日) 14:37:16
空のループをどう書くべきかしばしば悩むことがあった。
文法的には
for (〜; 〜; 〜);
と書けばいいのだが、セミコロンを見逃しやすい。
for (〜; 〜; 〜)
 ;
これもなんだか微妙。
しかし今さっき思いついた。こう書けばいいのではないか?
for (〜; 〜; 〜)
 continue;
0531デフォルトの名無しさん2010/12/26(日) 14:48:12
>>529
do{ }while(0)は結構見かけるよ
0532デフォルトの名無しさん2010/12/26(日) 14:49:19
くだらん
空の波括弧を置くよりも下策ばかり並べて何を悩んでんだ
0533デフォルトの名無しさん2010/12/26(日) 15:01:09
Cじゃないが空のブロックは警告されるんだ
だからブロック化してもやっぱり中に何か書かなくちゃいけないんだ
それで習慣になってCやるときも空のブロックはなんか気持ち悪くて避けてるんだ
まぁ警告OFFにすればいいだけなんだけど警告は全部ONにするものっていう刷り込みがあって・・・
0534デフォルトの名無しさん2010/12/26(日) 15:02:36
空のブロックなら>>530の二番目がいいだろ。
0535デフォルトの名無しさん2010/12/26(日) 15:02:48
>>530
俺は真ん中の書き方かな
0536デフォルトの名無しさん2010/12/26(日) 15:16:38
みんなセミコロンが空中に浮いててもあんまり違和感ないのか・・・なるほど、参考にする
0537デフォルトの名無しさん2010/12/26(日) 15:20:28
>>533
何の言語か知らないけど、
ブロック中にコメント書いても警告されるの?
0538デフォルトの名無しさん2010/12/26(日) 15:22:47
>>536
一番上の書き方されると、かなり紛らわしいから嫌だな
forの次行に空セミコロンは、一見してforで値を回しているんだなぁって思えるから
俺は別に違和感ないな
0539デフォルトの名無しさん2010/12/26(日) 15:29:44
インクリメント部を外に出すとか
0540デフォルトの名無しさん2010/12/26(日) 15:40:22
for (〜; 〜; 〜) {
}

素朴に書けばいいじゃない
0541デフォルトの名無しさん2010/12/26(日) 15:46:32
空ブロックは変だろ。
0542デフォルトの名無しさん2010/12/26(日) 15:51:27
質問です
Hoge(int (*dat)[][2])
{
 …
}
上の関数をコールする場合のパラメーターってどう書くんですか?

int *d[4][2];
Hoge(d);

これではエラーになってしまう。ちなみにVSC++2008使用です。

0543デフォルトの名無しさん2010/12/26(日) 15:52:18
void foo(){}
for(;;){}

合わせたほうが好み
0544デフォルトの名無しさん2010/12/26(日) 15:59:08
int d[4][2];
foo(&d);
かな?
0545 ◆QZaw55cn4c 2010/12/26(日) 16:03:11
>>542
#include <stdio.h>
void f(int(*dat)[][2]){
}
int main() {
int array[3][2] = {
{1, 2}, {3, 4}, {5, 6}
};
f(&array);
return 0;
}
0546デフォルトの名無しさん2010/12/26(日) 16:08:01
>>544
void Hoge(int (*dat)[][2])
{
(*dat)[0][1] = 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int d[4][2];
Hoge(&d);
return 0;
}
でエラー
.\test-090.cpp(13) : error C2664: 'Hoge' : 1 番目の引数を 'int (*)[4][2]' から 'int (*)[][2]' に
変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは
関数スタイルのキャストが必要です。
他にエラーはなし。
0547デフォルトの名無しさん2010/12/26(日) 16:11:37
>>545
#include <stdio.h>
void Hoge(int (*dat)[][2])
{
(*dat)[0][1] = 1;
}
int main()
{
int array[3][2] = { {1, 2}, {3, 4}, {5, 6} };
Hoge(&array);
return 0;
}
でワーニングエラーでした。
.\test-090.c(12) : warning C4048: 'int (*)[][2]' と 'int (*)[3][2]' で配列の添字が異なります。
0548デフォルトの名無しさん2010/12/26(日) 16:13:34
void Hoge(int (*dat)[][2])
を
void Hoge(int (*dat)[3][2])
と入れれば、ワーニングも消えました。
上の書式は、ワーニングなしではいけない?
0549デフォルトの名無しさん2010/12/26(日) 16:18:33
gccだと>>547でも警告でないけど。
0550デフォルトの名無しさん2010/12/26(日) 16:19:00
>>547
VC2010では
#include <stdio.h>

void Hoge(int (*dat)[4][2])
{
(*dat)[0][1] = 1;
}
int main(void)
{
int d[4][2];
Hoge(&d);

printf("%d", d[0][1]);

return 0;
}

としないと警告が出るな
0551デフォルトの名無しさん2010/12/26(日) 16:22:22
>>549-550
そうすると、元々の例題ソースがgccだったんですね。たぶん。
ありがとうございました。勉強になりました。
0552 ◆QZaw55cn4c 2010/12/26(日) 16:26:31
>>548
多次元配列の次元指定のうち最大のものは、配列のアクセス場所を特定する演算では使用しなくても問題ないので、
void f(int (*a)[][3][4][5]);
はありだと思うのですが、msvc は丁寧に警告してくれるのですね。
警告が気になるのなら、プログラムと相談して、
void f(int (*a)[10][3][4][5]);
とするのもいいかと思います。
なお、gcc や borland c では警告はでませんでした。
0553デフォルトの名無しさん2010/12/26(日) 16:32:22
void f(int a[][3][4][5]);
void f(int (*a)[3][4][5]);
それはこういうときだろ?

void f(int (*a)[][3][4][5]);
じゃ指定なしじゃどう考えてもまずいだろ
なんで必要ないのかちゃんと考えろボケ
0554デフォルトの名無しさん2010/12/26(日) 16:34:48
void Hoge(int (*a)[][3][4][5])
は通るけど
void Hoge(int a[][][3][4][5])
は通らないんだな・・・興味深い
0555デフォルトの名無しさん2010/12/26(日) 16:36:36
bccだと上も通らない
0556 ◆QZaw55cn4c 2010/12/26(日) 17:02:33
>>553
もうしわけない。
>void f(int (*a)[][3][4][5]);
>じゃ指定なしじゃどう考えてもまずいだろ
が理解できません。よろしければぜひ。

なお私の考えは >>552 に示しました。
0557デフォルトの名無しさん2010/12/26(日) 17:07:40
>>552
gcc -ansi -Wall
で警告が出ないなら問題ないよ
0558デフォルトの名無しさん2010/12/26(日) 17:46:08
int型関数の場合main()に値を返すことができますよね
main()をint型で作ってreturn(0),return(1),return(-1)を返すと
どうなるんですか
0559デフォルトの名無しさん2010/12/26(日) 17:54:01
>>558
プログラムそのものが返す、正常終了したかどうかの値として使われるという感じ
0560デフォルトの名無しさん2010/12/26(日) 18:03:23
�@int main(int argc, char *argv[])
�Aint main(void)
�Bint main()
�Cvoid main(void)
�Dvoid main()

ANSI C89として間違ってるやつを教えてください
出来れば理由も込みで…
0561デフォルトの名無しさん2010/12/26(日) 18:11:08
C89なら処理系で定義されてればどんなのでも許される
0562デフォルトの名無しさん2010/12/26(日) 18:21:38
>>560
C89は前のCの亜流を統一したような規格なので大抵の書き方は許してしまう
0563デフォルトの名無しさん2010/12/26(日) 18:24:43
何でCだと空を意味するのをvoidにしたんだろ
emptyじゃダメだったのけ?
0564デフォルトの名無しさん2010/12/26(日) 18:29:51
雰囲気的には
emptyは、何かあったものが空になったと言うイメージがある。
voidは、もともと空、もともと無いと言うイメージがある。
voidの方が合ってる気はする。
0565デフォルトの名無しさん2010/12/26(日) 18:54:59
ω・`)ぷ〜
0566デフォルトの名無しさん2010/12/26(日) 19:00:47
>>564
NULLほど
0567デフォルトの名無しさん2010/12/26(日) 19:33:24
>>563
理想的には何も書かない無言であるべきだったが
それだと K&R と互換性が保てないのでやむを得ず新設したプレースホルダー
0568デフォルトの名無しさん2010/12/26(日) 19:53:06
>>560
明確に規格で定義されてるのは1と2
0569デフォルトの名無しさん2010/12/26(日) 20:47:57
void main(int ac, char** av)
当方アマチュアなのでもっぱらこれか
void main()
これだわ。
ラクだし。
0570デフォルトの名無しさん2010/12/26(日) 20:50:05
まぁいいんじゃない
どうせ終了コードなんて滅多に使われない
0571デフォルトの名無しさん2010/12/26(日) 21:04:11
>>569
タイプ量を数個減らすために警告出すほうが気持ち悪い。
0572デフォルトの名無しさん2010/12/26(日) 22:30:51
>>533
gccでのコンパイルオプションになにを指定しているのか教えてほしいw
0573デフォルトの名無しさん2010/12/26(日) 22:50:14
C#の質問はここでいいですよね?
0574デフォルトの名無しさん2010/12/26(日) 22:51:46
シャラープ(#)
0575デフォルトの名無しさん2010/12/26(日) 23:05:25
すいませんC言語以前の段階で詰まってるので助けてください

http://www.kazamiya.net/svm/svm-light_install.html

↑
上の手順でmakeをしてコンパイルしろという部分があるのですが、
'make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出ます。色々と調べたら恐らくパスが通ってないってのが原因なのはわかるん
ですが、具体的にどこのパスを通せばいいのかがわかりません。
よろしくお願いします
05765752010/12/26(日) 23:07:23
ちなみにvisual c++は入れてあるのですが、これを使ってコンパイルするやり方も
よくわからなかったのでできれば教えていただけると嬉しいです
0577デフォルトの名無しさん2010/12/26(日) 23:08:42
>>575
UNIX/Linux でやれとしか
Windows でどうしてもやりたいなら Cygwin をインストールしてそこでやるべし
0578デフォルトの名無しさん2010/12/26(日) 23:09:37
>>577
MacOSXでもできるよ!多分
05795752010/12/26(日) 23:10:32
え、そうなんですか!?
Cygwinも入ってるには入ってるんですが。
ちなみにどこを見てunixでやった方がいいと判断されたのですか?
0580デフォルトの名無しさん2010/12/26(日) 23:12:15
Makefileって知ってる?
0581デフォルトの名無しさん2010/12/26(日) 23:14:41
>>560
ttp://www.kijineko.co.jp/tech/superstitions/void-main.html

従って、1、2は規格合致、3は処理系定義されていれば規格合致、4、5は規格違反
C++でも同様

C99なら4、5も処理系定義されていれば規格合致だが、
C99はmainでreturn 0;を省略できるのでvoidにするメリット0
0582デフォルトの名無しさん2010/12/26(日) 23:15:47
>>579
使ってるコマンド
0583デフォルトの名無しさん2010/12/26(日) 23:17:59
Cygwin外からも使えるようにしたければMinGW使ってコンパイルすればいい
-mno-cygwinオプションつけてコンパイルすればMinGW使ってくれる
0584デフォルトの名無しさん2010/12/26(日) 23:20:49
UbuntuとWindowsでデュアルブートする方法お願いします
0585デフォルトの名無しさん2010/12/26(日) 23:21:09
ソフト自体はWindows版も提供されてるからその必要はないと思うけどな
05865752010/12/26(日) 23:25:30
>>580
聞いたことはあるんですが設定の仕方とかわかりません

>>582
そうなんですか、今日一日windowsでやろうとしてたのにorz

>>583
makeのあとにそれをつけるんですか?
0587デフォルトの名無しさん2010/12/26(日) 23:29:05
>>585
そうなんですか。
どうもありがとう!
0588デフォルトの名無しさん2010/12/26(日) 23:30:16
>>585
普通にWindows版バイナリがあるなw
ttp://download.joachims.org/svm_light/current/svm_light_windows.zip
05895752010/12/26(日) 23:34:24
>>588
おおおおおおおおお!!!!
ありがとうございます!多分それで解決したのかもしれません。
12時間ぐらいかかってたのですがようやく使えそうです。ありがとうございました
0590デフォルトの名無しさん2010/12/26(日) 23:36:46
UbuntuとかGUIが充実し過ぎててわざわざ使う意味ないな。
0591デフォルトの名無しさん2010/12/26(日) 23:36:46
あぁ〜、逆にね
0592デフォルトの名無しさん2010/12/26(日) 23:51:03
たしかに、開発用途だとGUI関連はぽんぽんアンインストールしてるな。
0593デフォルトの名無しさん2010/12/26(日) 23:51:55
あぁ〜、逆にね
0594デフォルトの名無しさん2010/12/26(日) 23:53:40
だったらubuntuなんてハイカラなもん使わずに最初からFreeBSDで良くね^^;
0595デフォルトの名無しさん2010/12/27(月) 00:06:18
Ubuntuはインストールの仕方がわからないからだめ
時代はCygwinだよ
0596デフォルトの名無しさん2010/12/27(月) 00:09:23
CD-Rに入れるだけだろw
0597 ◆QZaw55cn4c 2010/12/27(月) 00:19:28
>>581
C99 での話です。
>>560 の�Bは、JIS X3010:2003 6.7.5.3 によれば、
関数定義の一部である関数宣言子で識別子並びが空の場合、関数が仮引数をもたないことを指定する
とあり、JIS X3010:2003 5.1.2.2.1
一、上に掲げた二つの方法のいずれかと等価な方法
に該当するので、�Bは無条件に規格合致です。
0598 ◆QZaw55cn4c 2010/12/27(月) 00:22:57
>>575
VC++ Express Edition ならば、Visual Studio Tool のなかに、コマンドプロンプトがあり、
これを起動すれば nmake が使えます。make も使えますが、unix の make に近いのは nmake のほう。(昔からそうだった。)
このVC の設定をしたコマンドプロンプトは工夫すれば cygwin の bash を起動させることができ、便利に使えます。
0599デフォルトの名無しさん2010/12/27(月) 00:47:39
>>595
cygwin勧めてるのがこんなレベルの人間だと思われたら困る
Unix,Linuxを使いこなしてる人間がcygwinを勧めてるはず
0600デフォルトの名無しさん2010/12/27(月) 00:52:30
Windowsでフリーで“使える”コンパイラが無かった時代はcygwinを学校などで使う理由はあったが
今はいらない子だよ
0601デフォルトの名無しさん2010/12/27(月) 00:54:28
今cygwinを使うとしたら Xサーバー として使うのが有力だろう
0602デフォルトの名無しさん2010/12/27(月) 00:58:13
デカいIDEはいらないからVC++はオーバースペックすぎるし
unixコマンド使いたいからcygwin+gcc入れて使ってます
06035752010/12/27(月) 01:05:22
>>598
ありがとうございます。
わからないことだらけすぎて質問がし辛いのでもうちょっと勉強してから
また質問しに来させてください。

みなさん丁寧に教えていただいてありがとうございました。
0604デフォルトの名無しさん2010/12/27(月) 01:13:29
cygwinのviがショボいんだが
0605デフォルトの名無しさん2010/12/27(月) 01:19:53
禿同
どうにかならないもんかなぁ
0606デフォルトの名無しさん2010/12/27(月) 02:48:02
初めてC言語をコンパイラすることを
CEXの初体験と言うと聞いたのですが本当ですか?
お前はまだCTだって言われたんですがどういう意味ですか?
0607デフォルトの名無しさん2010/12/27(月) 07:43:08
今どんな気持ち?
0608デフォルトの名無しさん2010/12/27(月) 08:35:59
viがうまく使いこなせない
0609デフォルトの名無しさん2010/12/27(月) 14:58:16
ほっほっ
0610デフォルトの名無しさん2010/12/27(月) 15:20:17
>>598
Windows版のバイナリ使うことで結論でてないか?
0611デフォルトの名無しさん2010/12/27(月) 15:22:59
>>604-605
vim7.2 enhancedが提供されてそうに見えたけど、だめかい?
0612デフォルトの名無しさん2010/12/27(月) 15:28:14
だめ!!!!!
0613デフォルトの名無しさん2010/12/27(月) 15:42:22
そんな7.3すごいの?
0614デフォルトの名無しさん2010/12/27(月) 16:29:25
モードを芯柱にしたUI設計なんて前世紀の遺物だし今更使い始めても慣れられないのも当たり前だよ
0615デフォルトの名無しさん2010/12/27(月) 16:36:13
慣れてなさそうなのを明言しているのは>>608ぐらいだと思うけど、どうした
0616デフォルトの名無しさん2010/12/27(月) 17:08:52
時代はCUI
0617デフォルトの名無しさん2010/12/27(月) 17:16:44
scanfを使って数字を入力するとストリームに改行が残ってしまって次のfgetsで改行を食べてしまうのですが一般的に数字を入力する時はどのような関数を使っているんでしょうか?
0618デフォルトの名無しさん2010/12/27(月) 17:28:32
年に何度も出る質問だね
0619デフォルトの名無しさん2010/12/27(月) 17:29:00
fgets→sscanfが結構メジャーな流れです
0620デフォルトの名無しさん2010/12/27(月) 20:25:39
>fgetsで改行を食べてしまうのですが
fgetsは関数だ。改行は食い物じゃない。俺おかしなこといってるか?
0621デフォルトの名無しさん2010/12/27(月) 20:27:10
とりあえずfflushでどこかに吐き出すといいよ
0622デフォルトの名無しさん2010/12/27(月) 20:34:02
windowsでS-Jis(char)を、EUC-jp(wchar_t)に変換する方法ありますか。
EUCかつ一文字が2バイトにしたいです。扱いやすいため。
0623 ◆QZaw55cn4c 2010/12/27(月) 20:34:18
>>621
fflush() は入力ストリームには使えない。

>>617
>>619
06246222010/12/27(月) 20:35:39
age
正確に言うと、char文字列をwchar_t文字列にする事です。
0625デフォルトの名無しさん2010/12/27(月) 20:38:22
ふっほっ
06266222010/12/27(月) 20:38:47
Sjis(char)をメモリ上の配置気にせずEUC(wchar_t)へ変換したらいいですか。
Sjis(char)→EUC(char)変換→EUC(wchar_t)そのままコピーする。
06276172010/12/27(月) 20:49:55
お礼の返事遅れましたが回答頂きありがとうございました!
fgets,sscanfを使うようにします。
0628デフォルトの名無しさん2010/12/27(月) 20:51:29
ttp://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/kanjicod.html
0629デフォルトの名無しさん2010/12/27(月) 20:52:18
何かいてるのかさっぱりわからんがとりあえずここコピペすれば変換ばっちりでつ
0630デフォルトの名無しさん2010/12/27(月) 20:52:54
どぴゅっどぴゅっ
0631デフォルトの名無しさん2010/12/28(火) 01:16:45
なんか参考書が難しくてプログラムの動作に追いつけないんだけど
ソース眺めてるだけでわかるもんなの なんかいい方法ないですか?
0632デフォルトの名無しさん2010/12/28(火) 01:23:17
手を動かせ
0633デフォルトの名無しさん2010/12/28(火) 01:24:01
制御・変数・関数について概念と構文を把握する
参考書を捨てて作りたいものを試行錯誤しながら作り上げる
アルゴリズムを勉強して↑のコードを書き直す
参考書を買って読む
0634デフォルトの名無しさん2010/12/28(火) 01:26:13
>>631
ソース眺めてるだけでもわかるけど、実際にソースを色々変えてコンパイルしたほうが理解は早いよ。
0635デフォルトの名無しさん2010/12/28(火) 01:36:29
プログラマーって左利き多くね?
俺右利きおわた・・・
0636デフォルトの名無しさん2010/12/28(火) 01:41:21
>>635
右手をへし折ればいいんじゃね
0637デフォルトの名無しさん2010/12/28(火) 02:10:22
ちょっと確認いいですか
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


main(int ac,char **av)
{
printf("%s\n",*av);
while(--ac>0&&**++av=='-'){
return(1);
}
printf("%s\n",(*av));
printf("%s\n",(*(av++))); ←この部分
}


ちょっと動作確認してたんですが 最後のprintfの出力はインクリ前の値が
出力されるみたいです。
これ他の関数の場合でも渡してからインクリするんですか
0638デフォルトの名無しさん2010/12/28(火) 02:15:54
>>637
副作用完了点 でぐぐれ

av++;の副作用完了点は;の直前
つまりavの値を返してからセミコロンに行くまでの間のどこかでインクリメントされる

++av;だったらインクリメントした値を返す
0639デフォルトの名無しさん2010/12/28(火) 03:02:41
副作用完了点 でぐぐるまでもない
0640デフォルトの名無しさん2010/12/28(火) 04:20:32
>副作用完了点
教科書とかに頼らない独学だとこういった固有名詞を知らないことが多いよね
0641デフォルトの名無しさん2010/12/28(火) 05:16:26
C言語でタブーサーチによる実装を心がけてるんですが、
どこかにソースとかってありませんか?

よろしくお願いします
0642デフォルトの名無しさん2010/12/28(火) 07:40:20
>>641
つ[google]
0643デフォルトの名無しさん2010/12/28(火) 08:13:45
>>431
エディタをカスタマイズする。
強調キーワードとか色付けとか工夫しとけ
まさかメモ帳でやっとるわけないよなぁ
0644デフォルトの名無しさん2010/12/28(火) 08:16:43
アンカミス >>631な
0645デフォルトの名無しさん2010/12/28(火) 10:26:09
>>640
教科書三冊読んだけど初めて見ました^^
0646デフォルトの名無しさん2010/12/28(火) 15:13:57
みんなもっと>>640をおうえんしよう!
0647デフォルトの名無しさん2010/12/28(火) 16:05:23
a[i++] = i; と あからさま な奴や
a[i++] = *p;  /* p = &i */ と ワンクッションかかってる奴
稀に古い書物で出てたりするから危ないんだよな…
0648デフォルトの名無しさん2010/12/28(火) 16:57:58
______________________________________
|                                        ノ´⌒ヽ,,           |
|                                    γ⌒´      ヽ,           |
| 以下                              // ""⌒⌒\  )          |
| ミンシュトー創設者                           i /   \  / ヽ )             |
| ルゥピー・ウェールズからの                   !゙   (・ )` ´( ・) i/          |
| メッセージをお読みください                 |     (__人_)  |          |
|                                   \    `ー'  /.            |
|                                  ハ',::ヽ      ハ、.            |
|                               ,,、-'´ |\`ヾ::::::::::::ィ  / | ``ヽ─-、.  |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0649デフォルトの名無しさん2010/12/28(火) 17:49:05
やーだお(´・ω・`)
0650デフォルトの名無しさん2010/12/28(火) 17:49:55
ちょいと疑問に思った事なんですが、
何でforのループとかって「i,j,k,l,m,n」辺りがよく使われるの?

「i」が「iterate」の頭から来てるのは何となく分かるんだけど、
その他って何か理由があったりするの?
0651デフォルトの名無しさん2010/12/28(火) 17:51:26
>>638
副作用完了点は関係ないな
0652デフォルトの名無しさん2010/12/28(火) 18:49:02
関係ないよ(キリッ
0653デフォルトの名無しさん2010/12/28(火) 18:51:10
>>650
FORTRAN 訛り
0654デフォルトの名無しさん2010/12/28(火) 19:12:15
関係ないよ(キリッ(キリッ
0655デフォルトの名無しさん2010/12/28(火) 19:18:26
>>650
iはintegerのi
0656デフォルトの名無しさん2010/12/28(火) 19:19:11
iterateなんてC++以前は全然使われてなかった
k,n辺りは数学で使われてたΣとかで
FORTRANの暗黙で整数型はintegerから来てるんじゃないかな
0657デフォルトの名無しさん2010/12/28(火) 19:19:20
iはindexのiではないか?数学で、要素の一時的な添字は慣習的に、i,j,kなどを使うので
それに倣ったんじゃないか。
0658デフォルトの名無しさん2010/12/28(火) 21:06:39
すいません。
あるRGB値のテーブルが定義されていて、
0xffffff
0x888888
0x444444
0x123456

ある任意のRGB値が与えられた場合に、
テーブルの中から最も近い色のRGBを取り出す、
ということをやりたいのですが、どういう比較をすればいいでしょうか。
0659デフォルトの名無しさん2010/12/28(火) 21:19:02
ググったら情報が出てきたわ。
(r1 - r2)^2 + (g1 - g2)^2 + (b1 - b2)^2
を比較すれば良さそうですね
ありがとうございました
0660デフォルトの名無しさん2010/12/28(火) 21:21:30
そうとは言えないだろ。色合いが近いって意味でしょ。
距離では人間のみためを正しい表さないとおもう。
0661デフォルトの名無しさん2010/12/28(火) 21:48:37
おおう。どうすれば。。
0662デフォルトの名無しさん2010/12/28(火) 22:17:18
減色するときに似たようなことやったけどね
そのままじゃベタっとするから拡散すればいい
0663デフォルトの名無しさん2010/12/28(火) 22:21:16
用途によるけど、別にRGB空間での距離でも問題ないと思うが。
HSVでもHLSでもLABでもYUVでも好きな色空間に変換してから距離を求めれば?
0664デフォルトの名無しさん2010/12/28(火) 23:07:52
LAB 以外は投影モデルが円柱だったり円錐だったりするので
ピュアに距離比較するなら 球に相当する LAB が良いかも?
0665デフォルトの名無しさん2010/12/29(水) 01:16:04
最近質問の内容が難しすぎて本当にC言語初心者か?って疑いたくなる
もっと簡単な質問にしてくれよ
0666デフォルトの名無しさん2010/12/29(水) 01:35:45
わからないなら黙ってろ
0667デフォルトの名無しさん2010/12/29(水) 02:52:43
>>666
お前も分からないなら黙ってろカス
0668デフォルトの名無しさん2010/12/29(水) 02:58:54
>>667
お前も分からないなら黙ってろクズ
0669デフォルトの名無しさん2010/12/29(水) 04:00:21
for(i = 666; i < 668; i++){
printf(">>%d\nお前も分からないなら黙ってろクズ \n", i);
}
0670デフォルトの名無しさん2010/12/29(水) 04:01:14
i < 669 の間違いじゃねえの
0671デフォルトの名無しさん2010/12/29(水) 04:40:39
>>665
C言語として難しいことは何もしていないからねぇ。
0672デフォルトの名無しさん2010/12/29(水) 10:28:43
>>669
これは恥ずかしい
0673デフォルトの名無しさん2010/12/29(水) 14:24:09
このスレ入門者のためのスレだろ。
中級、上級のためのスレってないの?不公平やないか
0674デフォルトの名無しさん2010/12/29(水) 15:18:11
ほっほっ
0675デフォルトの名無しさん2010/12/29(水) 15:38:07
Windowsのみなさんエディタなに使ってますか?
0676デフォルトの名無しさん2010/12/29(水) 15:41:43
秀丸エディタ
0677デフォルトの名無しさん2010/12/29(水) 15:43:56
秀丸ってコンパイル出来ないじゃん
0678デフォルトの名無しさん2010/12/29(水) 15:45:41
エディタだからいいだろw
0679デフォルトの名無しさん2010/12/29(水) 15:52:28
NetBeans
0680デフォルトの名無しさん2010/12/29(水) 16:02:14
あぁん?ぷよぷよの悪口か?
0681デフォルトの名無しさん2010/12/29(水) 16:08:08
HOLDの甘さ蜂蜜級
0682デフォルトの名無しさん2010/12/29(水) 16:11:26
秀丸って拡張子.cのファイル作ってからじゃないとダメなの?
0683デフォルトの名無しさん2010/12/29(水) 16:34:38
HOLDの甘さ砂糖級
0684デフォルトの名無しさん2010/12/29(水) 16:45:23
最近は専らxyzzyかvimだな。
0685デフォルトの名無しさん2010/12/29(水) 19:51:07
あれ?NetBeansだめなのか?
0686デフォルトの名無しさん2010/12/29(水) 19:51:54
C言語を始めよう!
0687デフォルトの名無しさん2010/12/29(水) 20:50:34
ロシヒカリってなんですか?
0688デフォルトの名無しさん2010/12/29(水) 20:57:53
お米
0689デフォルトの名無しさん2010/12/29(水) 21:13:49
ロシヒカリなんてあるのか
0690デフォルトの名無しさん2010/12/29(水) 21:21:11
なんか力が抜ける響きだな
0691デフォルトの名無しさん2010/12/29(水) 22:29:49
ロシヒカリw
0692デフォルトの名無しさん2010/12/30(木) 00:12:12
cygwinのエラー張りたいんだけど
ドラッグで範囲選択できない
なんか方法ないですか? 
0693デフォルトの名無しさん2010/12/30(木) 00:15:13
パイプでもつかったら?
0694デフォルトの名無しさん2010/12/30(木) 00:17:22
>>692
[編集]-[選択範囲]
マウスで範囲選択した後、Enterキーでクリップボードに入るはず
0695デフォルトの名無しさん2010/12/30(木) 01:14:20
a.c:28: error: stray ‘\201’ in program
a.c:28: error: stray ‘@’ in program
a.c:28: error: stray ‘\201’ in program
a.c:28: error: stray ‘@’ in program
a.c:28: error: stray ‘\201’ in program
a.c:28: error: stray ‘@’ in program

エラーの一部です @も\201もコードに書いてないはずなんですが
どういう意味のエラーですか
0696デフォルトの名無しさん2010/12/30(木) 01:55:36
'\201'は8進数で201、つまり16進数で81
'@'は文字コードにして16進数で40
8140といえばSJISの全角空白
0697デフォルトの名無しさん2010/12/30(木) 02:02:54
ありがとう
16進数ででるんですね
でもシフトジスは関係ないですね
81と40はビンゴです、
0698デフォルトの名無しさん2010/12/30(木) 02:08:47
何を言っているんだか。
0699デフォルトの名無しさん2010/12/30(木) 02:14:48
コンパイラのエラーから察すると 0x81 0x40 という並び文字だ
この並びで意味あるペアといえば SJIS で全角空白
ゆえに ソースは SJIS で開くと 28行目に 全角空白が 3発入っている箇所があるはずだ

インデントの時に全角空白入れてしまった か "が漏れた か
0700デフォルトの名無しさん2010/12/30(木) 02:30:52
>>699のみて確認したら全角でした
81,40も#defineで使ってたんですが見当違いのようです。
 
驚嘆しました
0701デフォルトの名無しさん2010/12/30(木) 03:40:53
よくあること。
>16進数ででるんですね
これも見当違いであったことに気付いてほしい
0702デフォルトの名無しさん2010/12/30(木) 03:42:55
コンパイルエラーを解説する本が出たら売れると思う
0703デフォルトの名無しさん2010/12/30(木) 07:33:28
プログラム上でbmpファイルをひとつのフォルダにたくさん保存したいのですが、
例えばbmpファイルを image001.bmp image002.bmp image003.bmp ...
というように順番に自動で保存していく方法を教えてください。
このときにフォルダ内に既にimage002.bmpがある場合はimage003.bmpという名前から保存し始めたいです。
0704デフォルトの名無しさん2010/12/30(木) 07:55:13
ループの中で既にそのファイル名がある場合はcontinueすればいいんじゃない?
既にそのファイル名があるかどうかの確認はAPIつかってもいいし
rモードでのfopenが成功するかどうかでもいいし
0705デフォルトの名無しさん2010/12/30(木) 08:20:15
コイツラわざとやってるんだろうか?
0706デフォルトの名無しさん2010/12/30(木) 11:40:18
$ gcc a.c
/cygdrive/c/Users/mituru/AppData/Local/Temp/cckRIuT4.o:a.c:(.text+0x338): undefi
ned reference to `_fpintf'
collect2: ld returned 1 exit status

なんじゃこりゃあ
解決方法おしえて

0707デフォルトの名無しさん2010/12/30(木) 11:42:20
× fpintf
○ fprintf
0708デフォルトの名無しさん2010/12/30(木) 12:11:44
英語も読めないのか……
0709デフォルトの名無しさん2010/12/30(木) 13:26:19
俺はドイツ人だから英語はちょっと・・・
0710デフォルトの名無しさん2010/12/30(木) 13:35:15
ドイツ人は英語できるよ
0711デフォルトの名無しさん2010/12/30(木) 13:50:20
英語のできるドイツ人もいる。
英語のできる日本人もいる。
0712デフォルトの名無しさん2010/12/30(木) 13:50:36
undefined reference to `_fpintf'を翻訳サイトにかけたら、
「_fpintfへの未定義の参照」とでた。つまり、

「'_fpint'という未定義な命令を参照しているから、定義を見直してください」
ということだろう。

0713デフォルトの名無しさん2010/12/30(木) 14:08:14
>>711
無知って怖いよね
0714デフォルトの名無しさん2010/12/30(木) 14:32:15
そうだね。
0715デフォルトの名無しさん2010/12/30(木) 15:00:10
バッファってC言語の世界では配列とか変数のことをさしてるんですか?
一時的にデータを記憶するものと認識してるんですが、、。
標準関数のリファレンスみてるとストリームやらバッファなど難しい言葉があってわからん
0716デフォルトの名無しさん2010/12/30(木) 15:04:38
バッファは文字通り「緩衝」

AからBに何かを移すときに、その間に一時的に保持する緩衝領域。
0717デフォルトの名無しさん2010/12/30(木) 15:04:50
>>703
話聞いてたら欲しくなったので自分用に書いた。エロ画像整理に便利かと思って。

標準入力のリストから、ファイルを連番でコピーする。
http://ideone.com/2CKH6

ls や find と組み合わせて使う前提。

テキストファイルでリストを作って
a.jpg
b.jpg
c.jpg
cat list.txt | ./renban newlist
とかでもいい。ようするにファイル名リストの文字列をパイプで流し込めれば、何でもいい。
0718デフォルトの名無しさん2010/12/30(木) 15:15:48
>>716
その緩衝領域はプログラマが参照してはいけない領域なんですか。
モニタにどういう値が格納されているかモニタに表示させたい
0719デフォルトの名無しさん2010/12/30(木) 15:33:44
長さx=1のベクトルを-90度回転させたところ
xに1.2086-e008
yに0
zに-1
という数値がでて長さが変わってしまいました。
これは計算誤差という奴ですか?
いちおうベクトルの長さを100倍して
x,y,zそれぞれ100で割ってベクトルを正規化するという処理を行うことにしたのですが
普通はどうやるのでしょうか?
ちなみに回転の計算はOpenGLでやりました。

よろしくお願いしますm(_ _)m
0720デフォルトの名無しさん2010/12/30(木) 15:48:28
はい、計算誤差というやつです。
普通は無視します。 1 が 1.00000001 になっても大抵どうってことありません。
0721 ◆QZaw55cn4c 2010/12/30(木) 16:41:24
>>719
1.2086-e008 =0.000000012086
ですから、誤差でしょうね。
0722デフォルトの名無しさん2010/12/30(木) 17:22:27
コンピュータのくせに計算誤差とか許せんな
0723デフォルトの名無しさん2010/12/30(木) 17:28:08
そうだよな、許せんよな
窓から投げ捨てようぜ
0724デフォルトの名無しさん2010/12/30(木) 17:29:09
俺の方がよっぽど正確に計算できる
0725デフォルトの名無しさん2010/12/30(木) 17:31:21
俺だってできる
遅くてもいいなら
0726デフォルトの名無しさん2010/12/30(木) 17:53:40
OpenGLということはfloatで計算しているのかな?
floatなんて、10進数換算で高々7桁しか精度がないから1e-8なら量子化限界以下だ。
その新しいxに1を足してから1を引けば綺麗さっぱり0になるんじゃね?
0727デフォルトの名無しさん2010/12/30(木) 18:20:25
double使いやがれ!
0728デフォルトの名無しさん2010/12/30(木) 18:41:56
誤差がイヤならBCDライブラリでも作るといい。勉強にもなるし。
0729デフォルトの名無しさん2010/12/30(木) 18:45:49
座標データは量が多くなりがちだからfloatにしてるんじゃないの?
0730デフォルトの名無しさん2010/12/30(木) 19:00:52
>>728
アホ
BCD でも誤差はなくせん

数学の式をそのまま保持し続けなきゃ無理だよ
0731デフォルトの名無しさん2010/12/30(木) 20:56:43
>>730
無限小数みたいな表現不可能な値はどんな方法使っても不可能だが、それ以外はBCDでカバーできる。
もちろん計算も自前で作るのが前提だから、その意味で「ライブラリ」と言っている。
0732デフォルトの名無しさん2010/12/30(木) 20:58:50
有理数なら分数で扱えば?
0733デフォルトの名無しさん2010/12/30(木) 22:22:45
>>> import math
>>> pow(math.e, 1j * math.pi)
(-1+1.2246467991473532e-16j)

http://www.google.co.jp/search?sourceid=UTF-8&q=e^(%CF%80+*+i)
e^(π * i) = -1

結論:グーグル電卓機能を使った方が良い
0734デフォルトの名無しさん2010/12/30(木) 22:24:55
二進化十億進有理数でよろ
0735デフォルトの名無しさん2010/12/31(金) 17:32:18
動的メモリと静的メモリ領域って
動的→プログラム実行中に確保
静的→コンパイル時に確保
という違いですか? またfree()しなければいけないのはなぜ?
0736デフォルトの名無しさん2010/12/31(金) 18:25:31
>>735
だいたい合ってる。
動的というのは、コンパイル時点でサイズが分からない(変動する)から確保しようがない、ということ。
free()は、長時間常駐するようなアプリじゃないとおそらく必要性が実感できないだろう。
0737デフォルトの名無しさん2010/12/31(金) 20:16:01
人が少ないのは大晦日だからですか
0738デフォルトの名無しさん2010/12/31(金) 20:23:17
>>735
> またfree()しなければいけないのはなぜ?
どんどんメモリを確保していったら、いずれメモリを使い尽くして空き領域が無くなってしまうから
使い終わった不要な領域はfreeで解放して空き領域に戻しておけば、また使える
0739デフォルトの名無しさん2010/12/31(金) 20:27:29
freeしてもすぐに解放されてる訳じゃないけどな
0740デフォルトの名無しさん2010/12/31(金) 20:33:08
こまけぇこたぁいいんだよ (AA略
0741デフォルトの名無しさん2010/12/31(金) 20:47:39
メモリ消費を気にしないならfreeしたくなかったらしなくてもいい
プログラムが終了すればOSが解放するから他への影響は無い
OSが無かったりOSがメモリ管理する気がないやつだったら別だけど
0742デフォルトの名無しさん2010/12/31(金) 23:42:21
int a=741;
return a;
0743デフォルトの名無しさん2010/12/31(金) 23:44:48
俺はお前ら底辺と違って富豪的プログラマーだから
0744 【だん吉】 【1606円】 2011/01/01(土) 00:07:11
!omikuji!dama
0745 【豚】 【1171円】 2011/01/01(土) 00:07:54
基本情報技術者試験に合格できますように。
0746 【吉】 【1027円】 2011/01/01(土) 00:31:38
>>745
豚終わったな。俺は基本は前回受かった。次は応用受ける
0747 【小吉】 【1974円】 2011/01/01(土) 00:39:33
今年から本気出す
0748デフォルトの名無しさん2011/01/01(土) 01:49:33
豚・・・
0749 【豚】 【346円】 2011/01/01(土) 02:14:34
基本情報とかまだ大丈夫だろ
0750デフォルトの名無しさん2011/01/01(土) 02:20:52
#include<stdio.h>
#define MAX 256

main(){

int count[MAX];
int c;
int i;

for(i=0;i<MAX;i++)
count[i]=0;

while((c=getchar())!=EOF)
count[c]++;
for(i=0;i<MAX;i++)
printf("%d:%d\n",i,count[i]);
}



コンパイルできません cygwinです 
comand not foundになります
アドレスは指定したんですが
0751デフォルトの名無しさん2011/01/01(土) 02:22:42
>>750
コンパイラをインストールしていないか
path の設定ができていない
0752デフォルトの名無しさん2011/01/01(土) 02:32:02
具体的にどうすればいいですか><
0753 ◆QZaw55cn4c 2011/01/01(土) 03:14:51
>>752
1) cygwin のコマンドラインで which gcc とした結果を教えてください。
2) cygwin のコマンドラインで set とした結果を教えてください。

結果は
タイトルバーのところで右クリック->編集->範囲指定
マウスで範囲指定(左ドラッグ)
タイトルバーのところで右クリック->編集->コピー
でコピペできます。
0754デフォルトの名無しさん2011/01/01(土) 03:24:26
ほっほっ
0755デフォルトの名無しさん2011/01/01(土) 03:28:09
ふっほっ
0756デフォルトの名無しさん2011/01/01(土) 03:39:10
>>750
cygwin をインスコしたときに setup.exe というファイルを実行したはず
(持っていなければ http://www.cygwin.org からゲット)
そいつが表示するウイザードを [次へ>] で進めていくと8ページ目くらいで [Select Packages] というツリーが出る
[All]-[Devel] の中に [gcc-core: C compiler] があって、そこに [Skip] と表示されていたらそれが原因
[Skip] をクリックすると日付っぽい表示に変わる(クリックから表示までラグがある)
この状態にしてから [次へ>] で最後までインスコを済ませれば cc が使えるようになっている
07577562011/01/01(土) 03:40:15
すまん http://www.cygwin.com な
0758デフォルトの名無しさん2011/01/01(土) 03:45:54
べっぽっ
0759デフォルトの名無しさん2011/01/01(土) 04:07:50
どぴゅっどぴゅっ
0760デフォルトの名無しさん2011/01/01(土) 04:25:44
初GUIでRPG作ろうと思ってある程度組めたんだけど素材集めで手が止まってしまった
0761デフォルトの名無しさん2011/01/01(土) 04:27:09
スレ違い
0762デフォルトの名無しさん2011/01/01(土) 04:35:01
すいまえんでした;;
0763デフォルトの名無しさん2011/01/01(土) 06:40:32
ほっほっ
0764デフォルトの名無しさん2011/01/01(土) 08:04:37
ぬりゅっぷぬりゅっぷ
0765デフォルトの名無しさん2011/01/01(土) 10:25:25
ぬるぽっぬるぽっ
0766デフォルトの名無しさん2011/01/01(土) 12:51:13
>>753へwhich gccから

$ which gcc
which: no gcc in (/usr/local/bin:/usr/bin:/bin:/cygdrive/c/Program Files/Common
Files/Microsoft Shared/Windows Live:/cygdrive/c/Windows/system32:/cygdrive/c/Win
dows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Program Files/Softex/OmniPass
:/cygdrive/c/Program Files/pcdNavi/bin:/cygdrive/c/Program Files/Common Files/Ro
xio Shared/10.0/DLLShared/:/cygdrive/c/Program Files/Common Files/Roxio Shared/D
LLShared/:/cygdrive/c/Program Files/Common Files/Ulead Systems/MPEG:/cygdrive/c/
Program Files/Fujitsu/sadata:/cygdrive/c/Program Files/QuickTime/QTSystem/:/cygd
rive/c/Program Files/Windows Live/Shared:/cygdrive/c/Program Files/Microsoft SQL
Server/100/Tools/Binn/:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/B
inn/:征/)
0767デフォルトの名無しさん2011/01/01(土) 12:52:10
http://codepad.org/3bPNB3dr

>>753へsetの実行結果↑
0768デフォルトの名無しさん2011/01/01(土) 14:47:01
>>753
>>756
コンパイルできました
今年もよろしくお願いします
0769 ◆QZaw55cn4c 2011/01/01(土) 14:55:39
>>766 >>767
ごめなさい。情報は >>766 だけでよかったですね。
そもそも gcc が入っていないようですね。

>>756 が参考になると思います。
http://www.dotup.org/uploda/www.dotup.org1333668.png.html
http://www.dotup.org/uploda/www.dotup.org1333670.png.html
0770デフォルトの名無しさん2011/01/01(土) 15:15:03
がめんなさい
0771デフォルトの名無しさん2011/01/01(土) 15:20:13
しゅみません

#define hoge hage
とするとhogeをhageと定義するということになりますが、

#define hoge
の一文しかない場合はどういう意味になるんでしょうか?

よく
#ifndef hage
#define hage
〜処理〜
#endif
というような流れでみます。
0772デフォルトの名無しさん2011/01/01(土) 15:44:12
何も置換されない
文中にhogehogehogehogeとか書いてもプリプロセッサを通った後
コンパイラが処理する時には無くなっている
置換はしないが、プリプロセッサはhogeというシンボルがある事は記憶するので
#ifdefや#ifndefで判断できる
0773デフォルトの名無しさん2011/01/01(土) 15:53:24
#define DEBUG

〜処理〜
#ifdef DEBUG
printf("何かしらの結果");
#endif
0774デフォルトの名無しさん2011/01/01(土) 15:58:46
Eオプションで展開後のソースを確認してみるといいよ
07757712011/01/01(土) 16:45:26
すみません。みなさん、おかげさまで大体のことはわかりました。
自分はオブジェクト指向系の言語からきてCにチャレンジしているので
まだまだ、わからないことばかりですが、がんばっていきます。

大体、のことは色々わかりましたので、Eオプションでやってみたり
して調べて見ます。>>773さんのは、デバッグのときに有効な手法なんですね。

色々ためしてやってみます。どうもありがとうございました。

0776デフォルトの名無しさん2011/01/01(土) 18:10:22
ほっほっ
0777デフォルトの名無しさん2011/01/01(土) 21:50:33
ふっほっ
0778デフォルトの名無しさん2011/01/01(土) 22:15:21
ちょww

>ミス日本の候補者は、さまざまな勉強会に参加しない面にも磨きをかけている。
0779デフォルトの名無しさん2011/01/02(日) 00:51:49
べっぽっ
0780デフォルトの名無しさん2011/01/02(日) 02:52:58
ほっほっ
07817702011/01/02(日) 10:29:27
>>771
オブジェクト指向系の言語とは、例えばどんな?
07827702011/01/02(日) 11:52:03
誤爆しました><
0783デフォルトの名無しさん2011/01/02(日) 12:34:12
glibc-2.7のgettimeofday.cを見るとマイクロ秒が入る変数に0Lを
代入しています。
それなのになぜgettimeofday関数はマイクロ秒を取得出来るのでしょうか?
見ているソースコードは./glibc-2.7/sysdeps/posix/gettimeofday.cです。
0784デフォルトの名無しさん2011/01/02(日) 12:41:26
そりゃお前(ry
0785デフォルトの名無しさん2011/01/02(日) 13:03:02
マイクロ秒が入る変数に0Lを
代入していません。
0786デフォルトの名無しさん2011/01/02(日) 13:10:22
たぶん実際に使う関数はそれじゃないんじゃないかな
0787デフォルトの名無しさん2011/01/02(日) 14:40:14
16個以下の整数を入力してその平均を求める。
-1が入力された場合はそれまでも数値の平均を求める。
と言ったプログラムなんですが、calcの部分が上手く実行されません。
どの部分が間違っているのでしょうか?

http://codepad.org/q58owKAZ
0788 ◆QZaw55cn4c 2011/01/02(日) 14:47:12
>>787
×*i++
○(*i)++
∵*i++ ≡ *(i++)

あとそのコードでは 16 個全部に値が入ったときに破綻するのでは?
0789デフォルトの名無しさん2011/01/02(日) 14:57:23
>>788
++のが*より早いと言うことですね
ありがとうございました。

そして data[*i]!=-1 && *i<16 と改善して16個入力しても上手く実行できるようにしました。
御指摘ありがとうございました。
0790デフォルトの名無しさん2011/01/02(日) 16:05:02
え?
0791デフォルトの名無しさん2011/01/02(日) 17:35:39
とあるサイトに「strはローカル宣言なので、この関数が終ると同時に開放されてしまいます
したがってこのアドレスを戻った先で使おうとしても内容は保証されません」と書いていました

char *func(val)
int val;
{
char str[512];
sprintf(str,"val = %d",val);
return(str);
}

そこで逆のパターンなのですが、アドレス渡しした変数iのデータは関数funcで確実に保証
されるのでしょうか?
結構使っていると思うのですが…

void main(){

int i=100;
func(&i);

}
void func(int *val){

printf("%d",*val);

}
0792デフォルトの名無しさん2011/01/02(日) 17:49:31
何が逆なんだw
0793デフォルトの名無しさん2011/01/02(日) 18:03:42
i は main が終わるまでは活きている ただそんだけ
0794デフォルトの名無しさん2011/01/02(日) 18:21:41
>>793
なるほど、ありがとうございます。

ではイベントからスレッドへのアドレス渡しの場合はどうなるとおもいますか

void OnButton(){

int i=100;
_beginthread(thread, 0, &i);
return;
}

void thread(void *data){

printf("%d",*(int*)data);
}

この場合、OnButtonイベントからすぐにリターンするので
スレッド内で引数 i は保証されないような気がしますが
0795デフォルトの名無しさん2011/01/02(日) 18:30:04
(Windowsだとして) どうなるか不明だと思うよ
OnButton から戻るのが先か
_beginthread で新しく作られたスレッドが呼び出されて終わるのが先か

時間t →
メインスレッド OnButton --- _beginthread --- OnButton からの戻り
               thread() ---- thread からの戻り
                         thread() ---- thread からの戻り
                                          thread() ---- thread からの戻り
何時別スレッドへディスパッチかかるかはわっからん
0796デフォルトの名無しさん2011/01/02(日) 18:31:36
てすお
07977952011/01/02(日) 18:45:21
ちょっとずれたけど、意図は伝わるかな?
マルチスレッド環境下で、そういう生命期間の怪しいものは、保障できないものとして考えると良いよ
(だから別スレッドへ渡すものは、生命期間がスレッドよりも確実に長いものを渡す)

スタック追跡したいとかの用途で あえて無茶な呼び出しも考えられるけど…
そんなの特殊すぐる
07987942011/01/02(日) 19:07:22
>>797
返答ありがとうございます。
意図は伝わりました。

今までの話はWindowsを前提にしているのですが
どうなるか不明ということは i は確実に保証されないということですね


いままで気づかなかったのですが、猫でもわかるのページでは
スレッドに値をアドレス渡しする場合にはstatic宣言していました。
今後はスレッドに値を渡すときはstatic宣言するように気をつけます
0799デフォルトの名無しさん2011/01/02(日) 20:05:41
こうやって、グローバル変数が増えるのでつねw
0800デフォルトの名無しさん2011/01/02(日) 20:19:00
>>799
いつ釣りとかいいだすの?
0801デフォルトの名無しさん2011/01/02(日) 20:21:13
マジ釣れたの? 暇人だな
0802デフォルトの名無しさん2011/01/02(日) 20:25:38
>>799
VCの_beginthreadで作成したスレッドに確実に値を渡す方法は他にあるのですか?
0803デフォルトの名無しさん2011/01/02(日) 20:28:55
>>802
まあ、mallocでヒープメモリー確保して渡す方法もある。
その他にもある。
0804デフォルトの名無しさん2011/01/02(日) 20:39:49
>>803
なるほど、確かにmallocだと値は確実に保持されると思いますが
プログラムが遅くならないですか?
他にも方法があるなら教えて欲しいです
0805デフォルトの名無しさん2011/01/02(日) 20:54:49
よくよく考えると今作っているプログラムのスレッドにstatic変数を渡すとまずいことが分かりました
今作っているプログラムはボタンを押すとダウンロードスレッドが立ち上がるようにしているのですが
ダウンロードスレッドが一つの場合は問題ないですが、複数のスレッドの場合、static変数にすると
別のスレッドで値が書き換わるように思えてきました。
0806デフォルトの名無しさん2011/01/02(日) 21:01:47
>>804
基本的にメモリー管理の問題だ。
メモリーには3つ有る、スタックエリアとグローバル(静的)メモリー、ヒープメモリー
スレッドを使う場合、スタックエリアをデーター渡しにするのはあまり良くない。
(と言うか俺は禁止するがな)
複数スレッドを起動したい場合、スタテックなラベルを使用すると大変だ。
(と言うか複数スレッドにデータ渡しでラベルは、俺なら禁止事項だ)
後は、メモリー管理処理を作って、複数のメモリーブロックを管理する。
その場合、グローバル領域に作ると個数制限が出る。
(最大個数が決まっていればそれでもいい)
ヒープで作れば、個数やメモリー制限が少ない。
メモリー確保は、管理処理から空いてるメモリーブロックを受けるだけなので、スピードは速い。
でもだ、これはあくまでも複数スレッドを管理するときだけで。

「単純スレッドなら、スタック以外何でもいい。」

余分な事だが、スレッド間通信を多用する場合。通信データーのメモリー管理を作ると
後々色々楽になる。
これはあくまでも俺の主観だ。
0807デフォルトの名無しさん2011/01/02(日) 21:32:39
>>806
ご説明ありがとうございます。
結局はヒープを確保してスレッドに渡すしかないようですね

メモリー管理処理とは初めて聞いたのですが、JAVAなどのガベージ・コレクタと考えて宜しいのでしょうか
0808デフォルトの名無しさん2011/01/02(日) 21:49:14
>>807
いや、単純に固定ブロックのメモリーを幾つかもって使用中や空きの管理。
とても高速に管理するだけ。
これの利点は色々ありすぎて説明が大変になってくるので、パスしたい…のでよろ。
0809デフォルトの名無しさん2011/01/02(日) 22:01:45
>>786
ありがとうございます。
どこにあるか分かる方、いないでしょうか。

一応、glibc-2.7ディレクトリ内のgettimeofdayと名がつくファイルを検索したところ
上記の他に
./time/gettimeofday.c
./sysdeps/posix/gettimeofday.c
./sysdeps/unix/sysv/linux/x86_64/gettimeofday.S
./sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
./sysdeps/unix/sysv/linux/alpha/gettimeofday.S
./sysdeps/mach/gettimeofday.c
と出ました。
intelの64ビットCPUを使っていて、OSは32ビットのもの、なおかつ一番上はエラーを返すだけなので
./sysdeps/posix/gettimeofday.c
./sysdeps/unix/sysv/linux/x86_64/gettimeofday.S
の2つに絞って読みましたが(OSは32ビットなのでx86_64はないと思いますが・・)
上記は先ほど説明したとおり、
下記は64ビット命令のため、知識がほとんどなく、調べても読むことが出来ませんでした。
またgrepでも検索をしましたがそれらしきものを見つけることは出来ませんでした。
0810デフォルトの名無しさん2011/01/02(日) 22:44:49
us単位なんて出るわけないだろ
時間関係の関数は全てカーネルのタイマ割込み間隔に依存する
4msぐらいじゃなかったか
0811デフォルトの名無しさん2011/01/02(日) 22:51:20
ほっほっ
0812デフォルトの名無しさん2011/01/02(日) 23:38:51
ふっほっ
0813デフォルトの名無しさん2011/01/02(日) 23:41:16
sysdeps/unix/syscalls.listから自動生成されるんじゃないかなぁ
なんにせよカーネルのgettimeofdayを呼ぶだけだと思うよ
0814デフォルトの名無しさん2011/01/03(月) 00:33:53
13 : ななしのよっしん :2010/05/11(火) 00:02:40 ID: c9tRC0XT4j
何お前ら佐倉紗織ディスってんのか
そんな空耳なんか書き込んで楽しいの?
そもそも椅子取りなんか聞こえないが
ファンとしてはマジイライラするわ
マジ氏ね

14 : ななしのよっしん :2010/05/11(火) 00:09:45 ID: NxfYIO7cl1
>>13
何
そ
そ
フ
マ

・・・?

16 : ななしのよっしん :2010/05/26(水) 16:22:10 ID: 2H5NgzDKW0
なんでもかんでも空耳つければおもしろいと思ってる人は何なの。
きしめんはまぁ良いとしても、無理矢理なの多すぎだろ。

17 : ななしのよっしん :2010/06/05(土) 22:05:30 ID: 6vZhnMoj4A
>>13>>16
それが大多数にウケてる現実を見ようw
それでも嫌なら見ないほうがいいw
0815デフォルトの名無しさん2011/01/03(月) 03:51:28
>>810
そうなんですか?検索して調べるとマイクロ秒の取得が出来ると書いてあったのですが・・
>>813
システムコールにgettimeofdayがあるんですね。
それならglibc内にないのも頷けます。
ちょっとカーネルのソースコードから探してみます。

ありがとうございました。
0816デフォルトの名無しさん2011/01/03(月) 08:36:33
>771>775

今さら見ていないかもしれないけど。

>772さん自身はわかっていそうだけれど

>何も置換されない
「何にも置換されない」のではなく「無に置換される。」

>文中にhogehogehogehogeとか書いてもプリプロセッサを通った後
>コンパイラが処理する時には無くなっている

トークンとして"hoge"と"hogehogehogehoge"は別物なので
#define hoge
で"hogehogehoge"は無くなったりしない。
0817デフォルトの名無しさん2011/01/03(月) 08:58:43
そんなこと分かってます。
08187942011/01/03(月) 11:42:06
VCのプログラムでスレッドに安全に値を渡す方法についてですが
以下のような方法は問題ないのでしょうか。


struct DAT{
int a;
char b[30];
};
char mem[100];


void OnButton(){

DAT d;
d.a=100;
strcpy(b,"AAA");
memcpy(mem,&d,sizeof(d));
_beginthread(thread, 0,NULL);
}

void thread(void *data){

DAT d2;

memcpy(&d2,mem,sizeof(d2));
printf("%d %s",d2.a,d2.b);
}
08198182011/01/03(月) 11:44:22
書き忘れましたが、スレッドを使わない簡単なプログラムでは
コンパイル、実行結果、問題なく動きました
0820デフォルトの名無しさん2011/01/03(月) 11:45:17
そのボタンを目にも止まらぬ早さで2連打したら問題ありそうな予感
え、そんなこと無理? まぁそうかもしれない
0821デフォルトの名無しさん2011/01/03(月) 11:48:45
>>820
すみません
簡単に書いたのですが、実際にはmemの開き領を調べて
空きがある場合にコピーして、ない場合にはエラーを返すように考えています。

あまり一般的な方法ではないような気がして質問しました
0822デフォルトの名無しさん2011/01/03(月) 12:17:19
いいんじゃない
別に一般的な方法にこだわる必要はない
動けばいいのさ
0823デフォルトの名無しさん2011/01/03(月) 12:48:55
DATをmallocして
map<threadid,DAT*> threads
のようなスレッド管理オブジェクトに詰め込むのが一般的じゃないかな
DAT構造体にbool quit;みたいな終了フラグを入れとけば
外部スレッドから自殺を促せるし
サブスレッドが走っているのにメインスレッドを終了する事もなくなるから。
終了時はどうでもいいってことなら
スレッドに渡したパラメーターのコピーが終わるまで
スレッド生成側がスコープを抜けないように
イベントやセマフォ、スピンロックなどを使って同期を取ればいいと思う
0824デフォルトの名無しさん2011/01/03(月) 13:00:14
あぁ、どうでもいいなら
同期取るよりmallocで渡してthread側でfreeしちゃうほうが楽だね
0825デフォルトの名無しさん2011/01/03(月) 13:02:23
すみません。煽りとかじゃないんす。

ここで、よくmallocとかけっこうCの実践的な質問をみるんですが、
いまどき、Cで開発してるところって、真面目にあるんですか?

一度もみたことないんです。。
08268182011/01/03(月) 13:13:07
>>823
確かにヒープが一般的だと思いました
ただ強制終了した場合にヒープだとメモリリークになるような気がしましたので
外部変数を考えました
0827デフォルトの名無しさん2011/01/03(月) 13:13:58
組み込みではCが普通
0828デフォルトの名無しさん2011/01/03(月) 13:29:48
組み込みではアセンブラを使ってマジックナンバーするのが普通
0829デフォルトの名無しさん2011/01/03(月) 13:43:25
>>826
リークしないように管理すればいいじゃん
てか、サブスレッドを強制的に落とすのはOKでリークはNGな理由は何?
0830デフォルトの名無しさん2011/01/03(月) 13:58:24
>>829
例えばサブスレッドではデータのアップ、ダウンロードを行うのですが
そのスレッドが強制終了などで中断されてもアップなら再アップロード
ダウンなら再ダウンロードを行えば問題ないと思います

メモリリークの場合は利用者が一日中パソコンを起動しているケースや
メモリが少ない場合はパソコンが不安定になるかもと考えたからです
動的にメモリを確保したままプログラムがなんらかのバグで
強制終了してもパソコンに全く影響がないのであればヒープを使います
0831デフォルトの名無しさん2011/01/03(月) 14:10:15
用語が錯綜しとるな −スレッドの強制終了
・(Win32)TerminateThread や 構造化例外を受けての脱出
・ユーザーの入力による脱出の選択処理


前者は間接的にリークを起こす可能性を秘めてるんじゃ…
(おおよそ、プロセス終了時に解放してくれるだろうけど)
0832デフォルトの名無しさん2011/01/03(月) 14:18:35
>>824
VCの malloc/free (ついでに new/delete) はスレッドセーフだっけ? <malloc/free のスレッドが異なる
いつも同じスレッドで入れ子に取り扱ってることが多いから ふと疑問におもた
0833デフォルトの名無しさん2011/01/03(月) 15:14:51
>>830
レジューム出来るようにすりゃいいじゃん
いっそのこと並列DL/ULに上限を設けて配列にしちまえ

>>831
分かりづらくてすまない
自殺or自然死以外という意味です

>>832
プロセス内で共有してるから開放できるよ
0834デフォルトの名無しさん2011/01/03(月) 15:55:48
int x[MAX];
int top=0;

int push(int n)
{
int (top>=MAX)
return(ERROR);/*Overflow*/
x[top++]=n;
return(n);
}

int pop(void)
{
if(top<=0)
return(ERROR);*/Underflow*/
return(x[--top]);
}
スタックのコーディングです なにをやっているかまったくわからないんですが
教えてください
0835デフォルトの名無しさん2011/01/03(月) 16:08:25
スタックだな
0836デフォルトの名無しさん2011/01/03(月) 16:25:22
http://codepad.org/3ImQwWse
0837デフォルトの名無しさん2011/01/03(月) 16:51:10
スレッドについてだが。
サンプルとか、本とかで簡単にスレッド実行ができるが。
サンプルスレッド(簡単)>>>>(技術的・設計的壁)>>>>実用的にスレッド使用
の隔たりがある。心にとどめておいてくれ。
0838デフォルトの名無しさん2011/01/03(月) 17:56:39
そんなのスレッドに限ったことじゃないし。なんでドヤ顔してるの?
0839デフォルトの名無しさん2011/01/03(月) 18:00:05
不等号の向きが気になる
08408372011/01/03(月) 18:02:19
なんだ?俺が何か間違ったこと言ったか?
お前らド低脳のために高脳の俺が助言してるんだが。
これくらい理解出来ないと技術者にはなれないぞ。
0841デフォルトの名無しさん2011/01/03(月) 18:11:45
ファビョったw
0842デフォルトの名無しさん2011/01/03(月) 19:50:25
C言語を勉強中のものです
6つの要素からなるベクトルの角度を求めるっていうプログラムを作ったのですが
http://codepad.org/l1zDb90Z
にあるように、めっちゃエラーを吐いてしまって自分ではどうにも出来ない状態です。
だれか助けてくれませんでしょうか・・・

0843デフォルトの名無しさん2011/01/03(月) 19:53:54
全角スペース
0844デフォルトの名無しさん2011/01/03(月) 20:34:22
>>842
>   /*ユーグリッド距離の計算*/

正しくは「ユークリッド」(Euclid)ね。

「マゼンタ」を「magenda」と綴ったりする間違いがあると、
ああ日本人が書いたんだなって予想がつくw
0845デフォルトの名無しさん2011/01/03(月) 20:42:10
>>842
まずエラーメッセージを丸ごとぐぐってみなよ。ダメ元で。
"stray '\343' in program"
08468422011/01/03(月) 21:00:03
http://codepad.org/q5SE6uCt
どうやらご指摘道理スペースが問題みたいでした。一応エラーは消えたのですが
まだoutputに気がかりな文が出てるのですが、これは大丈夫なんでしょうか・・・
0847 ◆QZaw55cn4c 2011/01/03(月) 21:04:59
>>846
#include <math.h>
0848デフォルトの名無しさん2011/01/03(月) 21:37:44
>>844
お前友達少ないよな
08498422011/01/03(月) 22:11:08
>>847
#includeを忘れてました。ご指摘ありがとうございます!
結果を貼っておきます
http://codepad.org/iwvxDAJF
cosの事についてはまだ残ってましたが、そうやらこれに関してはコンパイラの問題らしいので一応スルーしておきます
どうもありがとうございました
0850デフォルトの名無しさん2011/01/03(月) 23:11:22
>>834について少々調べたつもりですが結局last in first outは
どういうとこで役にたつの?
0851デフォルトの名無しさん2011/01/03(月) 23:28:53
再帰とか?
0852デフォルトの名無しさん2011/01/03(月) 23:42:57
rbuf[(head+count)%MAX]=c;
この%ってなんですか
0853デフォルトの名無しさん2011/01/03(月) 23:43:49
>>852 ごめん解決した
0854デフォルトの名無しさん2011/01/04(火) 00:01:16
文字列テンプレートだよ
0855デフォルトの名無しさん2011/01/04(火) 00:20:34
int* (***p[MNTS][STS])(int (***[MNTS][STS])());

ってどう読むんですか?

先輩に聞いたら、気にしなくてもいいよ
なんていってたけど、気持ち悪いんで教えてください。
0856デフォルトの名無しさん2011/01/04(火) 00:24:00
>>855
K&R嫁
0857デフォルトの名無しさん2011/01/04(火) 00:24:20
まったくのスレ違いであることを承知で尋ねることを、どうかお許しください!
中々答えが得られず非常に困っているのです。

ワープロのフロッピーをパソコンにデーター移行することができず、その際
のキーワードが『CSO』となっております。
カシオのワープロを5、6年前まで使っていました。ウィンドウズXPを使う
ようになり、その際保存していた1部の2HDの内容をパソコンに移しました。
その時はテキスト形式で何の問題もなく移行できました。使用したUSBはLogi-
tecという会社のドライバー器具です。
ところが先日別の2HDフロッピーで同作業を試みると、ファイル名やテキス
トの拡張子(?)がCSOとなっていて、開くことができません。
これは自分の操作で解決できる類のものなのでしょうか。また、前回できた
のに今回こういう風になったのは何故なのでしょうか。
どなたかスムーズにデータ移行できる方法をご伝授ください!
0858デフォルトの名無しさん2011/01/04(火) 00:26:33
>>857
カシオに聞け
0859デフォルトの名無しさん2011/01/04(火) 05:48:16
>>858
ワ
 キ
   の
           し
                        た
  と
               で
                    こ
     の
          な
   か
08608572011/01/04(火) 05:57:41
>859は俺じゃないが礼を尽くした相手にこのざまとはな
0861デフォルトの名無しさん2011/01/04(火) 06:29:40
なにこいつ
0862デフォルトの名無しさん2011/01/04(火) 07:08:01
カシオに聞けとしか言いようが無い
0863デフォルトの名無しさん2011/01/04(火) 07:10:41
csoファイルをバイナリエディタで開きます
元のデータを思い出しながらcso→元のデータに変換するプログラムを書きます
思い出した元のデータをそのままファイルに書き出します
おわり
0864デフォルトの名無しさん2011/01/04(火) 07:15:07
>>855
関数ポインタテーブルを受け取って処理し、
関数ポインタテーブルを返す関数、だな
状態遷移関数を実行するための関数とかか?
0865デフォルトの名無しさん2011/01/04(火) 07:34:51
>>864
それを証明してください。
0866デフォルトの名無しさん2011/01/04(火) 09:44:07
気になってしょうがありません。
0867デフォルトの名無しさん2011/01/04(火) 10:40:47
int型を返す関数へのポインタへのポインタへのポインタの要素数STS個の配列の要素数MNTS個の配列を引数に取りint型へのポインタを返す関数へのポインタへのポインタへのポインタの要素数STS個の配列の要素数MNTS個の配列
0868デフォルトの名無しさん2011/01/04(火) 10:46:17
伺いたいことがあるのですが、C言語で
あるデータの情報を処理→その情報とデータベースにある不特定多数の情報と類似度計算→その類似度が高いヤツをピックアップして表示
って感じのプログラムを作らなきゃならなくなったんですが、そもそもデータベースをC言語使って操作とか計算とか出来るのでしょうか
助言をお願いします。。。
0869デフォルトの名無しさん2011/01/04(火) 10:50:16
>>868
ライブラリがあればできる
詳しいことはデータベースの開発元に聞け
0870デフォルトの名無しさん2011/01/04(火) 10:57:48
質問なんですが、HTTP仕様的にGETリクエストにはhttp://から始まるフルパスを指定してもいいのですか?
0871デフォルトの名無しさん2011/01/04(火) 11:14:02
>>869
ありがとうございます!やってみます。ひとまずMYSQLのアクセスとかで調べてみます
あと出来ればこう言うのについて詳しく書かれてる場所があれば教えて欲しいのですが、どこかにあったりしますか?
0872デフォルトの名無しさん2011/01/04(火) 11:14:45
さげ忘れました。すいません
0873デフォルトの名無しさん2011/01/04(火) 11:18:25
そもそもsageる必要はない。
0874デフォルトの名無しさん2011/01/04(火) 11:19:14
その通り。むしろこのスレはage推奨とされている。
0875デフォルトの名無しさん2011/01/04(火) 11:24:19
>>871
"MySQL API C"でググればたくさん出てくる
0876デフォルトの名無しさん2011/01/04(火) 12:02:15
>>875
でました。ありがとうございます!
0877デフォルトの名無しさん2011/01/04(火) 12:32:08
>>855
こんなコードって多用されるの?
読める人は凄いな
0878デフォルトの名無しさん2011/01/04(火) 12:36:29
多用はされないだろ。こんなの出てくるなら設計見直す。
出てくるとしてもtypedefする。
0879デフォルトの名無しさん2011/01/04(火) 13:27:27
ポインタ完全制覇を読み終えたぐらいのレベルなんですがC言語のTCP/IPプログラミングを勉強するのに良い本またはサイトがあるでしょうか。
0880デフォルトの名無しさん2011/01/04(火) 13:31:21
typedef でなんとかなるレベルじゃねーし関数ポインタの引数が出てくるまで煮詰めたコードを汚いからと作り直すバカは居ねえと思うがね
0881デフォルトの名無しさん2011/01/04(火) 14:40:23
>>879
「ソケットプログラミング」でググッてみるとか。
0882デフォルトの名無しさん2011/01/04(火) 15:11:36
>>880
>typedef でなんとかなるレベルじゃねーし
関数ポインタをtypedefしたことがないんですね。

>関数ポインタの引数が出てくるまで煮詰めたコードを汚いからと作り直すバカ
妄言過ぎて言葉も出ない
0883デフォルトの名無しさん2011/01/04(火) 15:13:48
>>882
関数ポインタはtypedefできねーよ馬鹿
0884デフォルトの名無しさん2011/01/04(火) 15:17:56
>>883
できるぞ?
0885デフォルトの名無しさん2011/01/04(火) 15:33:37
>>883
嘘つくな
0886デフォルトの名無しさん2011/01/04(火) 15:34:58
>>881
良いサイト見つけました。
どうもありがとう。
0887デフォルトの名無しさん2011/01/04(火) 15:36:01
http://www5a.biglobe.ne.jp/~shinotan/hiro.jpg
0888デフォルトの名無しさん2011/01/04(火) 16:13:47
if、switch、for、while、配列、多次元配列などを勉強しました。

次は何を勉強すればいいですか?独学でやtってます
0889デフォルトの名無しさん2011/01/04(火) 16:23:01
リスト
0890デフォルトの名無しさん2011/01/04(火) 16:24:46
>>888
関数
0891デフォルトの名無しさん2011/01/04(火) 16:25:56
>>888
いままでのおさらいでマスターマインド作る
0892デフォルトの名無しさん2011/01/04(火) 16:38:27
>>890

難しそうで避けて通っていましたがテキストも次が関数なので
やってみます><
0893デフォルトの名無しさん2011/01/04(火) 18:56:13
テキスト通りにやれよw
0894デフォルトの名無しさん2011/01/04(火) 20:03:31
>>893
嘘つき
0895デフォルトの名無しさん2011/01/04(火) 20:20:55
#include <stdio.h>
int Tashizan(int a, int b){

int c;
c=a+b;
printf("%d + %d = %d\n",a,b,c);
}
int Hikizan(int a,int b){

int c;
c=a-b;
printf("%d - %d = %d\n",a,b,c);
}
int main(void){

int a;
int b;
a=1;
b=1;
Tashizan(a,b);

a=2;
b=1;
Hikizan(a,b);

return 0;
}
-----------------------
警告:関数は値を返すべき(関数 Tashizan)
警告:関数は値を返すべき(関数 Hikizan)
とでるのですが、どうすればいいですか?
使っているコンパイラソフトは「C言語を始めよう!」というフリーソフトです。
0896デフォルトの名無しさん2011/01/04(火) 20:23:05
returnすればいいです
0897デフォルトの名無しさん2011/01/04(火) 20:33:10
>>896


Tasizan、Hikizanをそれぞれ「return 0;」で
値を返せばよかったのですね!解決しました!
0898デフォルトの名無しさん2011/01/04(火) 20:43:00
#include <stdio.h>

int a,b,c;
int Tashizan(){

c=a+b;
printf("%d + %d = %d\n",a,b,c);

return 0;
}
int Hikizan(){

c=a-b;
printf("%d - %d = %d\n",a,b,c);

return 0;
}
int main(void){
a=1;
b=1;
Tashizan(a,b);

a=2;
b=1;
Hikizan(a,b);

return 0; }
--------------------------------
>>895のint a,b,cをグローバル変数にしたところ
警告:プロトタイプ宣言のない関数(Tasizan,Hikizan)の呼び出し(main)
とでました。どういうことなのでしょうか?
0899デフォルトの名無しさん2011/01/04(火) 20:54:04
>>898
定義と呼び出すときで関数の型が違う
0900デフォルトの名無しさん2011/01/04(火) 21:34:25
>>898
引数が空括弧の関数定義は「プロトタイプ宣言」としての効果を持たない
> int Tashizan() {
         ↑
         ここ
C++ と混同する者がよくいる要注意箇所である

C ではプロトタイプ宣言なしで呼び出した関数は引数の宣言がなく int を返すと仮定される
> Tashizan(a,b);

よって仮定された関数の型は合っていて >>899 はウソ

正しくは
> int Tashizan()
を
int Tashizan(int a, int b)
とすれば「プロトタイプ宣言された」と見なされる

ちなみに、それはあくまで「警告」であってエラーではない
場合によっては無視する判断も必要になる部類のメッセージだ
0901デフォルトの名無しさん2011/01/04(火) 22:01:13
>>899
>>900

ありがとうございます!解決しました!

つまり、関数の利点って、mainで指定した値をそれぞれの関数で別に使えるってことですよね?おそらく
0902デフォルトの名無しさん2011/01/04(火) 22:01:15
呼び出し元を修正しろ
0903デフォルトの名無しさん2011/01/04(火) 22:22:04
>>901
あせるな
作ろうとしているプログラムが複雑になるほど
複雑さをしまっておける収納箱のありがたみは
追わなくても向こうからついてくる
0904デフォルトの名無しさん2011/01/04(火) 22:24:34
ついてくるね
0905デフォルトの名無しさん2011/01/04(火) 23:36:35
ついてくるな
0906デフォルトの名無しさん2011/01/04(火) 23:37:13
ついんてーる
0907デフォルトの名無しさん2011/01/05(水) 00:05:28
関数ポインタをqsortでしか使ったことないんだけど
例えばどういった便利な利用方法があーる?
0908デフォルトの名無しさん2011/01/05(水) 00:07:18
>>907
qsort
0909デフォルトの名無しさん2011/01/05(水) 00:10:54
>>907
OOP
0910デフォルトの名無しさん2011/01/05(水) 00:15:04
>>907
COM
0911デフォルトの名無しさん2011/01/05(水) 00:17:47
>>907
GetProcAddress
0912デフォルトの名無しさん2011/01/05(水) 00:29:00

追っかけにくいから、関数ポインタが嫌いな人もいる。
場合分けがはっきりしてる時は、便利かも
0913 [―{}@{}@{}-] デフォルトの名無しさん2011/01/05(水) 00:53:04
g_state = TITLE;

if(g_state == TITLE){
  title_func();
}
else if(g_state == PLAY){
  play_func();
}

が

func_tbl[g_state]();

になって嬉しく感じられる人がいる
0914デフォルトの名無しさん2011/01/05(水) 06:09:40
g_state = TITLE;

if(g_state == TITLE){
  title_func();
}
else if(g_state == PLAY){
  play_func();
}

なにこの糞コードw
0915デフォルトの名無しさん2011/01/05(水) 06:35:21
>>914
バグらないだけこれよりマシなレベル

g_state = TITLE;
switch (g_state) {
case TITLE:
  title_func();
case PLAY:
  play_func();
}

switchなんてまず使わんから構文があってるかわからん
0916デフォルトの名無しさん2011/01/05(水) 06:51:01
コードを書くうえで、常に神経質にならなければならない問題にに、ライセンスの問題があります。
ここはベテランコーダーが多そうなので、質問です。
ライセンスに関する質問です。(よくわからない人は無理して答えてくれなくて結構です)

プロプライエタリなライブラリーであるadobe photoshop sdk = A
ライブラリとしてAを使用する、プラグインプログラムのソースコード = S
Sのa.out形式のバイナリ = B
AとBをリンクしたdll形式のバイナリ = P

Q1:S&Bのtar配布で、BSDライセンスとして配布することは、ライセンス的に可能でしょうか? また、これが可能なライセンスは何がありますか?
Q2:Bのみの配布で、BSDライセンスとして配布することは、ライセンス的に可能でしょうか? また、これが可能なライセンスは何がありますか?
Q3:Pのみの配布で、BSDライセンスとして配布することは、ライセンス的に可能でしょうか? また、これが可能なライセンスは何がありますか?
Q4:GNU等フリーソフトとして配布可能な、移植されたAは存在しますか?
Q5:上記の件について、どのような対処を行えばソースフォージの登録審査を通ると予想できますか?
0917デフォルトの名無しさん2011/01/05(水) 07:17:00
>>916
スレ違い

【License】ライセンス総合【利用許諾】
http://hibari.2ch.net/test/read.cgi/tech/1266247461/
0918デフォルトの名無しさん2011/01/05(水) 07:53:14
「俺っち普段switchなんて使わんkらよぉwww間違ってても堪忍してちょwwwwwww」
0919デフォルトの名無しさん2011/01/05(水) 11:28:54
>>914-915
どこがクソコードなのか分からん
0920デフォルトの名無しさん2011/01/05(水) 12:15:25
rand()%Nやgetsで発狂しちゃうタイプなんでしょ
0921デフォルトの名無しさん2011/01/05(水) 12:30:15
rand()%Nはともかく、gets()は発狂するしかないな
0922デフォルトの名無しさん2011/01/05(水) 12:37:09
>>915
switchでbreakしてないところじゃね?
0923デフォルトの名無しさん2011/01/05(水) 12:38:51
>>914-915
すいません、これってif文よりswitch文を使えってこと?
俺はどちらも結構使うんだけれど今後の参考のために
知りたいす。

ちなみに俺はif文とswitch文は前後のコードの見やすさで
使い分けてる感じ。
09249232011/01/05(水) 12:39:40
>>922
あ〜 そうゆうことかい。 orz
0925デフォルトの名無しさん2011/01/05(水) 13:02:52
>>921
本筋と関係の無い部分で揚げ足とってたら切り無いぞ
サンプルコードのお約束ってやつだ

>>922
それはないんじゃない?
フォールスルーのミスなんて自業自得なのに
責任転嫁の言語叩きは恥ずかしすぎでしょ
0926デフォルトの名無しさん2011/01/05(水) 14:14:03
>責任転嫁の言語叩き
えっ
0927デフォルトの名無しさん2011/01/05(水) 14:20:42
埋め
0928デフォルトの名無しさん2011/01/05(水) 14:46:57
埋め
0929デフォルトの名無しさん2011/01/05(水) 14:59:16
胡桃沢梅
0930デフォルトの名無しさん2011/01/05(水) 15:05:43
どんだけ気が早いんだよ
せめて次スレが立ってから埋めろ

都合の悪いことを埋めたいならさっさと次スレ立ててしまえ
0931デフォルトの名無しさん2011/01/05(水) 15:13:38
はいはい埋め埋め
0932デフォルトの名無しさん2011/01/05(水) 15:15:16
梅梅
0933デフォルトの名無しさん2011/01/05(水) 15:16:33
松竹梅
0934デフォルトの名無しさん2011/01/05(水) 15:16:52
個人的には牛丼屋の中では松屋がウメーと思う
0935デフォルトの名無しさん2011/01/05(水) 15:22:54
いやややいうや吉野家もうめーよ
0936デフォルトの名無しさん2011/01/05(水) 15:32:59
SQLインジェクション
0937デフォルトの名無しさん2011/01/05(水) 15:50:25
俺のちんぽをインジェクション
0938デフォルトの名無しさん2011/01/05(水) 15:57:04
埋め
0939デフォルトの名無しさん2011/01/05(水) 16:09:01
ポイズン
0940デフォルトの名無しさん2011/01/05(水) 16:46:08
関数ポイズン
0941デフォルトの名無しさん2011/01/05(水) 16:52:54
バッファオーバフロー
0942デフォルトの名無しさん2011/01/05(水) 16:53:24
バッファロー
0943デフォルトの名無しさん2011/01/05(水) 17:07:34
次スレもお世話になるか
0944デフォルトの名無しさん2011/01/05(水) 17:09:43
糞スレ
0945デフォルトの名無しさん2011/01/05(水) 18:20:35
エキスパートCプログラミングって結構分厚いんだな
0946デフォルトの名無しさん2011/01/05(水) 19:07:02
C言語でコマンドプロンクトを介入して他のプログラムを起動して操作するって方法があるらしいのですが、情報があまりに足りなくて困ってます
だれか詳しいやり方とか知ってる人がいたら教えてくれませんか
0947デフォルトの名無しさん2011/01/05(水) 19:11:30
popenとかのこと?
0948デフォルトの名無しさん2011/01/05(水) 19:23:50
>>945
いつまで売ってんだか
Cの古臭さが良く分かる本。
0949デフォルトの名無しさん2011/01/05(水) 19:28:29
あれをけちょんけちょんに批判できる人が言う「古い」と
イソップのキツネが言う「古い」は
重みが全然違う
0950デフォルトの名無しさん2011/01/05(水) 19:34:19
>>947
ぐぐってみましたが、恐らくそのことだと思います。
これで操作とか出来ればいいのですが、後もう少し調べてみないと判断出来ないですね。。。
ひとまず、教えてくれてありがとうです
0951デフォルトの名無しさん2011/01/05(水) 19:36:37
>>950
いえいえ
0952デフォルトの名無しさん2011/01/05(水) 21:17:26
void main(void){
int i=0;
int *p;

i = &i;
p = i;
printf("%d",*p);
}
これいけるかと思ったら案の定だめでした。
0953デフォルトの名無しさん2011/01/05(水) 21:45:56
そりゃキャストしないとダメだろ
0954Perl忍者 ◆M5ZWRnXOj6 2011/01/05(水) 22:00:10
まだやってんのかゴミ虫どもは
0955Perl忍者 ◇M5ZWRnXOj62011/01/05(水) 22:20:40
Perl最強だぜ!
0956Perl忍者 ◇M5ZWRnXOj62011/01/05(水) 22:30:19
C言語は糞
0957Perl忍者 ◇M5ZWRnXOj62011/01/05(水) 22:31:26
C言語にコンプレックスがありました。
皆さんすみませんでした。
0958Perl忍者 ◇M5ZWRnXOj62011/01/05(水) 22:32:20
おしっこもらしました。
皆さんすみませんでした。
0959デフォルトの名無しさん2011/01/05(水) 22:34:30
ほっほっ
0960デフォルトの名無しさん2011/01/05(水) 22:35:37
ふっほっ
0961デフォルトの名無しさん2011/01/05(水) 22:44:53
どぴゅっどぴゅっ
0962デフォルトの名無しさん2011/01/05(水) 22:51:30
ぶはっ!選ぶはっ!
0963デフォルトの名無しさん2011/01/05(水) 22:55:18
キチガイ共乙
0964デフォルトの名無しさん2011/01/05(水) 22:57:41
キキキキチガイ共乙えうえうえうえうえうえうえうえうえうフフフフフフフフフフフフフ
0965デフォルトの名無しさん2011/01/05(水) 23:01:00
C言語とはなんだったのか
0966デフォルトの名無しさん2011/01/05(水) 23:03:10
なんだもなにも只のプログラミング言語
0967デフォルトの名無しさん2011/01/05(水) 23:03:14
未だに死なない、息の長い言語
0968デフォルトの名無しさん2011/01/05(水) 23:05:15
>>949
どこが古くなってるかkwsk
0969デフォルトの名無しさん2011/01/05(水) 23:07:05
C言語は何故大失敗したのか
0970デフォルトの名無しさん2011/01/05(水) 23:10:59
scanfやgetsで信者とアンチを生み出したから
0971デフォルトの名無しさん2011/01/05(水) 23:11:27
どう考えても、Cは大成功だろ
0972デフォルトの名無しさん2011/01/05(水) 23:14:08
さっそく信者が釣れてるw
0973デフォルトの名無しさん2011/01/05(水) 23:15:42
成功かどうかはわからないけど世界で一番普及してるのはC言語なんだっけ
Perl()笑
0974デフォルトの名無しさん2011/01/05(水) 23:20:16
クロスワードパズル作れ言われたらC言語でつくるんか?
違うだろ。Perlだろ
0975デフォルトの名無しさん2011/01/05(水) 23:28:12
まぁCの信者って最近の言語を貶すことしかできないからねw
0976デフォルトの名無しさん2011/01/05(水) 23:30:00
今の日本のようですねw
0977デフォルトの名無しさん2011/01/06(木) 00:13:04
キモオタC言語信者がいたから顔面殴って蹴り落としてやったら意味不明なことを呟いていたなwwww
0978デフォルトの名無しさん2011/01/06(木) 00:13:06
作ったプログラムを評価というか、こうした方がいいよってアドバイスして
欲しいんですがそういうことをする人たちが集まるサイト紹介してください。
0979デフォルトの名無しさん2011/01/06(木) 00:18:16
Cさえマスターすれば他の言語で学ぶに時間かからないだろ。
文法とかスコープの概念なんかはすべて一緒だし。
逆にC言語は使えるけど他は分かりませんっていう人いる?いないだろ
0980デフォルトの名無しさん2011/01/06(木) 00:19:14
↑C言語使いがみんなこういう奴だと思われたら嫌だな
0981 [―{}@{}@{}-] デフォルトの名無しさん2011/01/06(木) 00:24:18
文法だけならすぐ理解できるけどな、開発をやるってなると開発環境とかライブラリとか
その他周辺知識の有無がかなり重要になってくるのな。
C言語で組み込みソフト作ってた奴がJavaで携帯アプリ作る仕事に転職できるかってできないのな。
0982デフォルトの名無しさん2011/01/06(木) 00:26:24
>>979みたいなのって文法脳だよね。
プログラミング言語使えるのなんて最低条件なのに「俺は多くの言語が書けます」とか言っちゃうタイプ。
で、開発能力は皆無。
0983 ◆QZaw55cn4c 2011/01/06(木) 00:27:22
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。
0984デフォルトの名無しさん2011/01/06(木) 00:29:23
>>982
開発能力ってなんやねん。言語扱えるなら開発もできるだろ。なめんな
0985デフォルトの名無しさん2011/01/06(木) 00:30:23
>>983
あなたは答えなくていいです。

別の方、改めてサイト紹介してください。
0986デフォルトの名無しさん2011/01/06(木) 00:32:18
984 :デフォルトの名無しさん:2011/01/06(木) 00:29:23
>>982
開発能力ってなんやねん。言語扱えるなら開発もできるだろ。なめんな


ほら、すぐにボロがでたw
0987デフォルトの名無しさん2011/01/06(木) 00:39:34
馬鹿ってなんで反論すぐとき関西弁になるの?
0988デフォルトの名無しさん2011/01/06(木) 00:41:34
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。
0989デフォルトの名無しさん2011/01/06(木) 00:43:58
>>988
消えろや
0990デフォルトの名無しさん2011/01/06(木) 00:45:50
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。
09919782011/01/06(木) 00:46:55
>>983
ありがとうございます
みてきます。 m(_ _)m
0992デフォルトの名無しさん2011/01/06(木) 00:47:44
◆QZaw55cn4c
こいつどうにかしてくれ
0993デフォルトの名無しさん2011/01/06(木) 00:55:33
ずいぶん前からいる荒らし
0994デフォルトの名無しさん2011/01/06(木) 00:57:22
983 : ◆QZaw55cn4c :2011/01/06(木) 00:27:22
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。

988 :デフォルトの名無しさん:2011/01/06(木) 00:41:34
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。

990 :デフォルトの名無しさん:2011/01/06(木) 00:45:50
>>978
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
が、わりに(わりに....ですけど)食いついてくれるかもしれません。コード書かない人は来ないところみたいですし。


これはひどい
0995デフォルトの名無しさん2011/01/06(木) 01:01:13
糞
0996デフォルトの名無しさん2011/01/06(木) 01:08:08
結局エキスパートCプログラミングは買って良いんだなお前ら!!
0997デフォルトの名無しさん2011/01/06(木) 01:09:43
>>996
お前だって同類だから。
0998デフォルトの名無しさん2011/01/06(木) 01:13:00
構造体
0999デフォルトの名無しさん2011/01/06(木) 01:22:26
ほっほっ
1000デフォルトの名無しさん2011/01/06(木) 01:23:34
糞スレ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。