いてつくブログ

2ちゃんねるのスレッドをコピペしてまとめてみるブログ

printf

ニュース【訃報】C言語およびUNIXの父、デニス・リッチーさんが死去 -享年70★4

1 :出世ウホφ ★:2011/10/16(日) 03:26:23.88 ID:???0
UNIXの父であり周囲の尊敬を集めたコンピュータサイエンティストのデニス・リッチーが、
しばらくの闘病を経て先週亡くなっていたことがわかった。享年70歳だった。

リッチー(dmrと呼ばれることもある)は、プログラミング言語のひとつであるC言語を生み出したこと、
そしてケン・トンプソンとともにUNIXを創りだしたことで世界中にその名を知られている。
リッチーはキャリアのほとんどをベル研究所で過ごした。彼が加わった1967年当時はアメリカで最も巨大な
電話回線提供社であり、かつ最も有名な研究所のひとつを運営する大企業であった。

60年代後半にトンプソン(彼はCの前進であるB言語を生み出した)とベルで働いているとき、
訪れようとしていたミニコンピュータ時代をにらみ、
より効率的なオペレーティングシステムを開発しようと思い立った。二人を中心としたこの作業は、
1971年のUNIXへと繋がっていった(DEC PDP-11の上で動作した)

TechCrunch Japan 10月14日(金)2時37分配信
http://headlines.yahoo.co.jp/hl?a=20111014-00001491-techcr-sci
画像 デニス・リッチーさん
http://e-bergi.com/2008/Agustos/resim/dennis_ritchie.jpg
前スレ ★1 2011/10/14(金) 11:19:08.25
http://raicho.2ch.net/test/read.cgi/newsplus/1318608961/l50
>>2以降に続く


2 :出世ウホφ ★:2011/10/16(日) 03:26:33.45 ID:???0
UNIXは安価で、かつさまざまなマシンを動作対象として想定してはいた。いったん動作させることができれば、
その上にさまざまなソフトウェアシステムを載せることができるようになっていた。
しかしOSがマシン語(アセンブリ言語)で記述されていたため、移植性も低く、またメモリの取り扱いにも苦労することとなった。

そこでリッチーとトンプソンは、C言語のシンタックスを発展させつつ機能を増やし、
ついにはOSを記述できるところまでに性能をあげていった。
そして1973年までにはついに、UNIXをCで書き換えてしまったのだ。カーネル部分は同年中に公開された。

今日、C言語は依然として2番目にポピュラーな言語として世界中で使われている(ないし、
これまでに記述されたコード量としては第2位につけている)。
そしてC++やJavaにさまざまな考え方が引き継がれていった。またUNIXについての二人の仕事は、
たとえばLinux TorvaldsのLinuxなどにも引き継がれていった。このUNIXの仕事だけでも、
リッチーは現代でもっとも重要なエンジニアのひとりとして位置づけられるべきだろう。

実際、UNIX関連の仕事により1983年にはケン・トンプソンとともに、チューリング賞を受賞している。
また1998年には当時の大統領であるビル・クリントンからアメリカ国家技術賞を受け取っている。(おわり)




101 :名無しさん@12周年:2011/10/16(日) 09:57:03.82 ID:TrP+EVoI0
配列の長さってメモリのどこにしまってあんの?

102 :名無しさん@12周年:2011/10/16(日) 09:58:06.30 ID:+QODP+Bt0
>>101
しまわれてない

103 :名無しさん@12周年:2011/10/16(日) 10:01:48.12 ID:TrP+EVoI0
>>102
なら配列をsizeofしたときの結果はどこから来るの?
量子の海?

105 :名無しさん@12周年:2011/10/16(日) 10:10:01.24 ID:+QODP+Bt0
>>103
コンパイル時に決まる静的な数字
定数

107 :名無しさん@12周年:2011/10/16(日) 10:15:42.69 ID:TrP+EVoI0
>>http://raicho.2ch.net/test/read.cgi/newsplus/1318608961/1000

コードが大きくなったからといって、変数の宣言に,が必要になる理由は見当たらんが。
可読性も変わらんし。


>>105
え‥定数ってメモリに格納されないの?
どうやってアクセスするんだ‥。

でも定数の仕組みを調べればいいってことはわかったよ。
ありがとう。

111 :名無しさん@12周年:2011/10/16(日) 10:19:59.20 ID:l9byU5PZ0
>>107
sizeofはコンパイル時に評価される演算子だよ。

配列の大きさはコンパイル時に決まってるだろ。

126 :名無しさん@12周年:2011/10/16(日) 10:35:50.31 ID:98EDqatg0
小学校か中学校でZ80とか68000とかのアセンブラ授業をちょっと入れるだけでびっくりするぐらいITに強い国になりそうな気もするんだけど
国がやるわけ無いか興味ないやつには地獄のような授業だろうしな

129 :名無しさん@12周年:2011/10/16(日) 10:37:50.92 ID:TrP+EVoI0
>>111
コンパイルとビルドとリンクの違いもわからんので、
コンパイル時に決まってるから、それがどうしたとしか。

素朴な疑問のはずが、なんでこんな面倒くさいんだよ!!

やっぱネットにある情報だけで独学は無理がある?

201 :名無しさん@12周年:2011/10/16(日) 12:11:12.49 ID:v7yWxBev0
>>126
アセンブラもいいけど、 R と、
Perl や、 Ruby などのスクリプト系の言語を、
全ての授業と試験で使うように義務付けたほうが。

227 :名無しさん@12周年:2011/10/16(日) 12:54:58.71 ID:ZEdZCuE70
>>201
スクリプト系ならpythonだろう
perlとかRなんて需要自体が限られてくる

228 :名無しさん@12周年:2011/10/16(日) 12:56:06.17 ID:jJ/McPJV0
>>201
C, C++/Java, SQL及びRDBMS周り, TCP/IP, R, Pearl/Ruby/Python

この辺は基礎教養として必修にしてほしい。

大学の教養でやったのは、時代遅れの昔のFortranで吹いたわ。
Excel VBA 教えてくれたほうが、まだ役に立つわ。

236 :名無しさん@12周年:2011/10/16(日) 13:12:21.16 ID:v7yWxBev0
>>227,228
あくまでも、一般の小中学生も含めた全国民に、
読み書き算盤の一環として教えて、日常生活の中で使用することが前提なので、
R とスクリプト系の言語ということに。

もちろんスクリプト言語に、Python を加えてもいいし、
さらに余裕のある子供には、他のコンピュータ言語や、
SQL などのリレーショナル・データベースなども教えるということて。

241 :名無しさん@12周年:2011/10/16(日) 13:17:31.16 ID:ZEdZCuE70
>>236
あまり意味ないと思うよ
pythonだけでもいいし、bashでもいい

スクリプト言語は誰でも簡単にプログラムが組めるという
メリットがある反面、それ自体には教育的な要素があまりない

一言で言えば「実用性に特化した言語」だろう
Rなんて統計学の基礎知識が無ければ、糞役に立たない言語だし

きちんと教育をしたければ、出来ればアセンブラ、妥協してC,Lispだと思う
スクリプトを教育に推奨するという人は、あまりプログラミングを理解していないのでは?
>>228の方が遥かに効果が高いと思う


266 :名無しさん@12周年:2011/10/16(日) 13:45:25.93 ID:v7yWxBev0
>>241-242
イメージとしては、自然言語で記述されたデータや、テキストデータを
スクリプト系言語で処理し、
必要とあれば、それらのテキストデータから、数値化されたデータも生成し、
また数値化されたデータを、R で処理するという感じで。

全国民がデータマイニングと統計学を常用するようになれば、
国民一人あたりの生産効率も、現在よりかなり上がると思うんだが。

もちろん、processing を使って視覚化もすれば良いと思うし、
awk や sed や、bourne sh や bash を使ってもいいと思う。

268 :名無しさん@12周年:2011/10/16(日) 13:47:54.91 ID:8EoSjf/P0
>>266
ミーハーな中二病って感じ

276 :名無しさん@12周年:2011/10/16(日) 13:55:26.25 ID:B+mA2h6y0
同人ゲー作りたいとプログラミングに手を出したが、
いきなり言語を学んでもイミフな世界だったので
コンピュータの歴史から学ぶことにしたら、
プログラミングの必要性やが概念がなんとなくだがつかめてきた気がする。
ま、文系DQNの自分にはこれが精一杯。
相変わらず何のプログラムもつくれまへん。

277 :名無しさん@12周年:2011/10/16(日) 13:56:54.02 ID:HHAQRIBP0
>>276
ふつーは、フリーなゲームのソースをいじってチートするところから始めるんですよ。


278 :名無しさん@12周年:2011/10/16(日) 13:58:40.50 ID:9je+1ZUb0
>>276
HSPでサンプルいじりながらいろいろやってみたら?
あれは本当に良くできている。言語仕様があれだとか文句を言う人もいるだろうけど
ノベルゲーなら、Nscriptとか吉里吉里とかあるから、それもコードをいじるところから初めてみるといい

読んでいるだけで理解できるなら、今頃あなたは、とっくにコードを書き始めているだろうからね

285 :名無しさん@12周年:2011/10/16(日) 14:04:49.04 ID:XW7KOuN20
>>276
今はツクール系のツールがたくさん出てるんだからまずはそれを活用しようぜ
それで不満が出てきたらほかの手を模索すればいい

301 :名無しさん@12周年:2011/10/16(日) 14:24:09.44 ID:XzZFu/VG0
Cでポインタを使って、アドレス0番地に入っている値を見るにはどうしたら良い?

304 :名無しさん@12周年:2011/10/16(日) 14:26:15.11 ID:8lLx9lsL0
>>301
*((char *)0)
じゃあかんの?

305 :名無しさん@12周年:2011/10/16(日) 14:26:46.07 ID:XzZFu/VG0
>>304
それ、ヌルポじゃないの?

307 :名無しさん@12周年:2011/10/16(日) 14:27:34.40 ID:v7yWxBev0
>>276
>>201 の話は、全国民が読み書きができるようになったように、
全国民が、あなたのいう「IT土方」程度の能力を身につけるようにしようというだけの話だよ。

スクリプト言語程度なら、
子供の頃からあらゆる授業や試験において、これを使っていれば、
まさにあなたが言うように

> 一方でスクリプトなんて知らぬ間に覚えてしまうものだ
> (使いながら覚えていくのに適している)

という性質のものなので >>201 のようにすれば
彼らが成人する頃には >>266 のような国になるわけだ。

ただ、公教育の場から日本語を全廃したとしても、
彼らが成人した頃に、彼ら全員が流暢に英語を読み書きできるような気もしないので、
私は >>268 の言うように「ミーハーな中二病」なのだとも思うが。

ところで C++ なら、
Linux や BSD 系の OS の他に、
一緒に haiku なども詠むと効率が良いんじゃないかな。

312 :名無しさん@12周年:2011/10/16(日) 14:30:30.79 ID:iXQ+dYayP
>>305
そりゃMMUがプロテクトかけているメモリ空間だったらユーザーレベルのプログラムが
いくら頑張っても読めないよ。
OSレベルでpeekに相当するAPI呼ばないと。
そもそも最近のOSではユーザープログラムが見ている0番地は実際の0番地ではないし。

316 :名無しさん@12周年:2011/10/16(日) 14:31:29.79 ID:XzZFu/VG0
>>312
じゃ、OSもMMUもない組込みシステムみたいなのとしたら?

347 :名無しさん@12周年:2011/10/16(日) 14:51:55.57 ID:S6ToEdjW0
Cなヒトで、僕がイヤなのは、
なんていうか、なんでもかんでも1行で書けばエライと思っているフシないすか?

aa= *(i++)|| (a > 10 ? (b = a) : (b = -a));

みたいなやつ。


365 :名無しさん@12周年:2011/10/16(日) 15:06:44.02 ID:xToHjjzIP
たまにC書くと、シンプルで良い言語だなと思う。
普段はbash使いなんだけど、Cは馬鹿っ速いし。

371 :名無しさん@12周年:2011/10/16(日) 15:09:07.08 ID:XzZFu/VG0
そもそも、K&Rのテキストで、えらくわかりにくいコードの書き方を
推奨していた気がする。

373 :名無しさん@12周年:2011/10/16(日) 15:10:58.09 ID:S6ToEdjW0
>>365
{ }で閉じるのはいいと思う。
Python使っていても、
if (a==b):
   a=0
#}
ってするんだよな。なんか閉じていない気がして。



453 :名無しさん@12周年:2011/10/16(日) 15:56:51.91 ID:S6ToEdjW0
これを言うと歳がバレるがw
FORTRANはパンチカードを生協で買って、パンチした。
翌年は、それがマークシートになって、消しゴムで消せるようになったので歓喜した。
うっかりコタツに置いた、マークシートの束を落としてバラバラになったら泣きそうになった


456 :名無しさん@12周年:2011/10/16(日) 15:58:15.64 ID:8EoSjf/P0
>>453
パンチカードとかジジイ教授の昔話でしか聞いたことないわ…
基本情報はCを選択したけど、K&Rで余裕だった。というか国語の問題だった

464 :名無しさん@12周年:2011/10/16(日) 16:01:32.78 ID:S6ToEdjW0
>>456
ジジイで悪かったな。
って事はなにか?今の若い者は
紙テープに出したコードの1バイトを変える時、マシンが開いていないので、実際に紙を当ててノリで貼ったり、
紙テープにパンチで穴あけたコトがないというのか?


471 :名無しさん@12周年:2011/10/16(日) 16:03:48.38 ID:XzZFu/VG0
>>464
ねーよw

505 :名無しさん@12周年:2011/10/16(日) 16:26:21.12 ID:rZsr/YfTP
>>373
カッコに毒されすぎ。

もっとPythonコード読みこなせば
(ちゃんと整形されたコードなら)
カッコなんてジャマだってわかるよ。

510 :名無しさん@12周年:2011/10/16(日) 16:29:08.01 ID:S6ToEdjW0
>>505
いや、わかっているんだけど

BASICだって、PascalだってCだって
「あけた扉は閉める」
のが流儀だったからなぁ。 こればっかりはちょっと慣れそうにない。


514 :名無しさん@12周年:2011/10/16(日) 16:31:02.09 ID:ZW2he9IB0
>>510
改行があるのに、わざわざ ; をつけないと怒られる方がおかしい。
これについてだけは、C の欠点だと思う。

516 :名無しさん@12周年:2011/10/16(日) 16:31:58.37 ID:KF3UGYne0
某メーカーで仕事やってた時、ポインタ禁止だったな
マジで
理由はポインタ分からないヤツがいるからとか
訳の分かんない理由だった

518 :名無しさん@12周年:2011/10/16(日) 16:33:16.72 ID:S6ToEdjW0
>>516
文字列を使わないのなら、ポインタ無くてもなんとかなるかな。


539 :名無しさん@12周年:2011/10/16(日) 16:41:44.94 ID:Snb2Cssq0
>>518

今の計算機でポインタを使うのと使わないのではどれくらい差が出るものなのかな?
差が、僅かしかないならポインタ使う必要の無いように思うのだが・・

544 :名無しさん@12周年:2011/10/16(日) 16:46:26.16 ID:m8Spbc5A0
Cでポインタ使わないってことは、動的なメモリ確保も使えず、
関数呼び出しで参照渡しも出来ないってこと?



547 :名無しさん@12周年:2011/10/16(日) 16:47:28.75 ID:S6ToEdjW0
>>544
>関数呼び出しで参照渡しも出来ないってこと?

これは全部グローバル変数にしとけ

でいいよなw



554 :名無しさん@12周年:2011/10/16(日) 16:51:32.95 ID:KF3UGYne0
>>514
;を付けないと、トークンの区切りをコンパイラが分からないから

>>547
そう、そんな感じ
必要なメモリは外部変数で予め確保しておけと
もちろん配列の関数渡しはご法度

577 :名無しさん@12周年:2011/10/16(日) 17:01:38.24 ID:y53esEbv0
楽してポインタなんか使ってると
結局ダメ人間になるって話だよね

585 :名無しさん@12周年:2011/10/16(日) 17:06:56.91 ID:S6ToEdjW0
そういや、今、ハンガリアン記法ってどうなん?

ボクは未だにPython使うときも

sFilename="file.csv"

って書くほうなんだけど。


594 :名無しさん@12周年:2011/10/16(日) 17:12:34.08 ID:XX7ww/030
>>585
それは、間違ったハンガリアン記法だから。
Wikipediaでも読んで勉強しなおそう。

746 :名無しさん@12周年:2011/10/16(日) 20:44:32.76 ID:h8tcq4eP0
無料のフルISOC99 Cコンパイラ

Tiny C Compiler
http://bellard.org/tcc/

いい時代になったもんだな。

749 :名無しさん@12周年:2011/10/16(日) 20:46:25.15 ID:HHAQRIBP0
>>746
GCCは無料ですよ。
しかも、かなり昔から・・・。

789 :名無しさん@12周年:2011/10/16(日) 22:21:56.19 ID:wOTgQlHh0
F社バブル入社でメインフレーム主体の部署配属されたのに
なぜかUNIXとCから入ったオレはラッキーだった

798 :名無しさん@12周年:2011/10/16(日) 22:38:29.37 ID:c5EabGSw0
>>789
メインフレームから専用機、UNIXからWINDOWS,PCも鯖もCOBOLもCもVBもshellもJCLもhtmlも何でもやったよ、俺。

挙句の果てに体壊して退職、現在はバイト生活だ(泣)。

807 :名無しさん@12周年:2011/10/16(日) 23:06:06.94 ID:yqZZM+h+0
>>798とかか技術は高そうなのに仕事に窮するって人多そうだな。
でもPGってのはいつの時代も必要なわけで、レベルの下がった今の新人を鍛えるより、
こういう人を採るほうが効率的だと思うんだが。
新卒PG育成の場面を見ていつも思う。

813 :名無しさん@12周年:2011/10/16(日) 23:15:57.83 ID:c5EabGSw0
>>807
年齢的にITはどこも雇ってくれそうにないんでVisualStudio買って自宅で趣味でプログラムはやろうと思ってる。

828 :名無しさん@12周年:2011/10/16(日) 23:37:40.61 ID:B+mA2h6y0
>>277
>>278
>>285

サンクス。
HSPは手を出していたんだが、
ゲームのスクリプトってどう書かれてるのかが分からなかった。
そういうところからはじめればいいのか。
やっぱ自己流オンリーってのはダメだわな。
とりあえずそのフリーゲームでも探してくるとしよう。

873 :名無しさん@12周年:2011/10/17(月) 02:08:33.13 ID:+BvcAizt0
Cは自分でツールを作ってプログラミング環境を便利にしていくための土台にするもの
Cでアプリケーションを作ることは大きなミス

878 :名無しさん@12周年:2011/10/17(月) 02:16:54.37 ID:Q3PJ1HMf0
>>873
それはCとC++を区別して言っているの?


http://raicho.2ch.net/test/read.cgi/newsplus/1318703183/l50人気ブログランキングへ


PC等C言語の第一歩

1 :美歩路:02/09/07 14:03
C言語を勉強しようと思うのですが、
何からやっていいのかわかりません。
そこで、C言語をいじったことのある人は
まず最初になにをやったかを
教えていただけたら、と思います。
よろしくお願いします。



2 :デフォルトの名無しさん:02/09/07 14:04
まず、2ゲトをやりませう。

9 :デフォルトの名無しさん:02/09/07 14:11
>>1
C++からどうぞ。

42 :デフォルトの名無しさん:02/09/07 16:20
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどC言語!びっくりするほどC言語!」
とハイトーンで連呼しながらベットを昇り降りする

これを10分程続けると妙な脱力感に襲われ、Cがわかった気分に浸れる

85 :デフォルトの名無しさん:03/01/09 03:37
>>138は弐編君

123 :123:03/04/04 17:10
今日はじめてCをやってみました。
とりあえず累乗計算をやってみました。

#include <stdio.h>
main()
{
int h;
int i;
int j;
int k = 1;

printf("累乗計算プログラム。\n");
printf("元の数字を入力してください。\n");
scanf("%d", &i);
printf("指数を入力してください。\n",i);
scanf("%d", &j);
for(h=1;h<=j;h++)
k = k * i;

printf("結果 %d",k);
}

5の2乗とかはちゃんとした答えが出たのですが、10の10乗ともなると、答えがおかしくなります。
どこを修正したらよいでしょうか?

137 :デフォルトの名無しさん:03/05/02 21:26
”while ”を用いたフィナボッチ数列。
最大値は最初にキーボードより入力
の模範解答キボンヌ。
最適な代入演算式がかけないモレは馬鹿。


138 :137:03/05/02 21:30
フィナボッチ数列を表示する
コードって事でおながいします。


176 :デフォルトの名無しさん:03/06/02 21:32
/*最初はこんなことやりましょう*/
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char buf[1024];

sprintf(buf, "start %s", argv[0]);
return system(buf);
}

177 :デフォルトの名無しさん:03/06/02 21:56
>>176
動きませんでつた。

$ gcc a.c
$ ./a.out
sh: start: command not found

182 :デフォルトの名無しさん:03/06/09 12:23
>>177
ある意味動いてると思うが?


206 :デフォルトの名無しさん:03/08/21 11:11
倉薫氏のC言語1の文をそのままコピーして勉強していたら、以下のプログラムの
なかほどにillegal characterがあると返ってきました。どこが間違っているのか
教えてください。
 /* 成人かどうかを判定するプログラム */

#include<stdio.h>

main()
{
int age;

age = 22;

   if(age>=20)
{
puts("今夜はとことん飲みましょう!");
}
else
{
puts("ウーロン茶で乾杯ですかね.....");
}
}



209 :デフォルトの名無しさん:03/08/21 12:12
>>206
>   if(age>=20)
ifの左側に全角空白があるからじゃねーの?
コンパイル、実行できたぞ

231 :デフォルトの名無しさん:03/09/16 21:58
カニ飯&ライオネル・リッチーの本はむずい。

247 :デフォルトの名無しさん:03/10/26 00:14
Cでグラフィック作りたいんですがどんな書籍ありますか?
ポインタや配列がある程度理解できるレベルなんですが。

344 :デフォルトの名無しさん:04/10/04 23:51:22
ボーランドC++のコンパイラ入れたんですけど、テキストはCです。
都合悪いでしょうか?

363 :デフォルトの名無しさん:04/10/17 05:01:18
if(...){
}else{
};
??↑ここの;がいらないのはなぜか?っていう意味かな?

365 :デフォルトの名無しさん:04/10/17 06:02:13
>>363
そういう意味なら
{ ?? } を ; が付いていないけどCでは複文という文の一種として扱われているから、が答えになる。

366 :デフォルトの名無しさん:04/10/17 06:56:11
>>365
struct {
int a;
}

これでエラーになりましたが、なぜでしょう。。

370 :デフォルトの名無しさん:04/10/17 09:22:38
条件を書く時ので困ってます。
例えばこんなかんじで。

「もし、2<x<5 または 9<x<100 の時」
ってどう書けばいいのでしょうか?

if(x>2 && x<5 || x>9 && x<100)
{??}

ではいけないような気がします。

400 :デフォルトの名無しさん:04/11/28 20:18:44
今日からC勉強しようと思うのですが。なにかいい参考書ってありますか?
もししっているのならば教えてもらいたいのですが・・・。
なにぶん初心者なので、わかりやすいけど、内容が深いものがいいです。

408 :デフォルトの名無しさん:04/12/14 18:40:49
ポインタ配列というのがイマイチ理解できない。
例えば
char s[1];
s[0] = "foo";
s[1] = "bar";
とした時に、
確認したいのは…
1.s[0]は"foo"の先頭文字('f')のアドレスを指していて、s[1]は"bar"の先頭文字('b')の先頭文字のアドレスを指している
2.変数名は配列の先頭アドレスになるので、*s {配列sの先頭アドレスを参照} は s[0] {配列sの先頭要素}と等価である
3.*(s+1) {配列sの先頭アドレスを1要素分進めたアドレスを参照} は s[1] {配列sの2番目の要素} と等価になる

で、疑問
その1:
メモリ内で、"foo"と"bar"が必ずしも順番に並ぶとは限らない?
(必ず |f|o|o|\0|b|a|r|\0| になるとは保証されていないのか。)
その2:
*s + 1 という式の「1」が意味するところ
(s[0]に格納されているアドレスを 1番地 進めたアドレス? or char1文字分進めたアドレス?)

エ□イ人、教えてください。

467 :デフォルトの名無しさん:05/02/07 14:30:45
質問です。
初心者レベルですがJavaについての知識はあります。
これからVS.netでC++を学んでみたいのですが、言語の文法を学ぶ場合、
はじめに、Cを学んでからステップアップしてC++を学ぶべきですか?
それとも、いきなりC++から学んでもいいのでしょうか。

468 :デフォルトの名無しさん:05/02/07 14:50:04
>>467
私はこのスレでならCを学べと答える。

469 :467:05/02/07 15:01:42
>>468
レスありがとうございます。
この場合のCから始めるメリットとは何ですか?

470 :468:05/02/07 15:48:05
>>469
Javaとの違いをはっきり認識するため。

485 :デフォルトの名無しさん:05/02/16 01:24:10
EOF(-1)と(char)255の区別がつかなくなるから。

488 :デフォルトの名無しさん:05/02/16 02:10:27
>485
なぜstrlenはエラーを返せないsize_t型なのでしょうか?

545 :デフォルトの名無しさん:2005/05/26(木) 19:00:56
質問させていただきます。

int hogehoge( void array, int n){
  char foo[] = "たらば蟹";

switch( n ){
case 1:
     (char*)array = (char*)malloc(sizeof(char) * length);
     strcpy( (char*)array, foo);
break;

      ・
}
    ・
    ・
    ・
  return 0;
}

このようにしてmain関数から
prinft(" %s\n", array);
としても何も表示されないんですが、どうしたら表示されるようになるでしょうか?

546 :デフォルトの名無しさん:2005/05/26(木) 20:54:32
>>545
int hogehoge(char **array)
{
?? ?? *array = malloc();
?? ?? strcpy(*array, foo);
?? ?? return 0;
}

あるいは戻り値を使っていないのならchar *を返す方法もある。

588 :デフォルトの名無しさん:2005/07/07(木) 15:56:44
c言語で1000以下の素数を二つ足し合わせて1000になるプログラムってどうすればいいんですか?わかる方いましたらお願いします。できるだけ初心者でも理解できるものでお願いします。

606 :デフォルトの名無しさん:2005/10/11(火) 15:06:11
とりあえずC言語を一通りできるようになったのですが、このあとどんな言語をやればいいですか?
それともこのままC言語を極めたほうがいいですか?

617 :クレヨ( ゜д゜):2006/02/14(火) 15:07:11
for文のことでわからない事があるので教えて下さい。

僕の読んだ本によると、
例えば↓
int i;
for(i=0;i<5;i++){
printf("%d",i);}
はまずi=0を実行しi<5を判定し真なら条件式に当てはまっている為
ブロックの中身printf("%d",i);を実行すると書いてありました。

でもこのジャンケンゲーム↓
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main(){

int computer,x,player = 0,p_win = 0,p_lose = 0,draw = 0,c_win = 0;

printf("【ジャンケンゲーム!!】\n");
srand(time(NULL));

for(x = 0; x<5; x++){
printf("ジャンケン…(プレイヤーは「1:ぐー、2:チョキ、3:パー」を入力)>");
scanf("%d",&player);
while(getchar() != '\n');
if(player == 1){printf("プレイヤーはグー!!\n");}
else if(player == 2){printf("プレイヤーはチョキ!!\n");}
else if(player == 3){printf("プレイヤーはパー!!\n");}
else{printf("※プレイヤーは不正な手を入力しました\n");}

644 :デフォルトの名無しさん:2006/03/15(水) 12:31:12
俺もうすぐ工房のプログラマー志望の人間なのだが、C言語の一番簡単で
入門用のプログラム「Hello World」を書いてコンパイルしてできた.exe
のファイルを開いても、コマンドプロンプトが一瞬でてすぐに消えるという
状態になっています。よく目を凝らしてそのコマンドプロンプトをみると
「Hello World」と書かれている気がしないでもありません。
このプログラムは成功なのでしょうか?

使用コンパイラはBorland社のBorland C++ Compilerです


649 :デフォルトの名無しさん:2006/03/15(水) 13:32:57
printf("Hello World!\n");
getch(); /* リターン押されるまで待機 */
return 0;

656 :デフォルトの名無しさん:2006/03/17(金) 03:03:41
まったくのゼロからC言語を勉強している者です。現在、10日でおぼえるという本を半分程度までやり終えたところです。
これが終わったらWindowsゲームプログラミングに移ろうかと考えていたのですが、
その前に「独習C」の方もやったほうがよろしいのでしょうか?教えてください。

657 :デフォルトの名無しさん:2006/03/17(金) 04:48:44
>>656
やったほうがいいです
そして次の本へいくまえにアルゴリズムとデータ構造について学んでください

690 :デフォルトの名無しさん:2006/07/26(水) 11:58:26
インクルードファイル 'stdio.h' をオープンできない

っていうエラーが出るんですけど、どうしたらいいんでしょうか・・・
超初心者ですみません><

722 :デフォルトの名無しさん:2007/03/05(月) 14:50:46
今C言語を使って住所録のようなものを作っているのですが
あるところで手詰まってしまいました。

まず、自分が作ろうとしている住所録の仕様は
登録、編集、削除、参照を行えるプログラム
登録は一人ずつファイル出力を行う。
  
  名前
  住所
  電話番号
  メールアドレス
            これで一人分のデータ。(構造体で領域確保)

編集は編集したい行数を受け取り(複数行は考えないものとする)、新しい文字列に差し替える。
削除は次の人のデータを上書きして、消す。
参照はstrcmpで名前を検索していき、行数指定で一人分のデータを出力

このような仕様で作っていこうと思っていたのですが
削除と編集がうまくいかなく、困っています。

723 :722:2007/03/05(月) 14:55:33
取り合えず編集だけ
printf("編集するのは何行目?:");scanf("%s",&gyo);gyo=-1;
fp=fopen("address.txt","r");
j=0;
while(fgets(buf[j],80,fp)!=NULL){j++;}
printf("どのように編集しますか?\n");
scanf("%s",str); //編集文字str
fclose(fp);
fp=fopen("address.txt","w");
max=j;j=0;
while(1){
if(j!=gyo){ //編集する行の前まで普通に出力
fprintf(fp,"%s",buf[j]);
j++;
}
else{ //編集する行になったら挿入
fprintf(fp,"%s",str);
gyo=-1; //gyoをマイナスし指定行数の先を出力させる
}
if(j>max)break; //全部出力し終わったらbreak
}
fclose(fp); //ファイルを閉じる

という感じでやっているのですが、指定してる行数に出力されないどころか、編集文字strの内容が全部でません。
お前なんか勘違いしてんぞ?ってところがありましたらご指導ください。

724 :デフォルトの名無しさん:2007/03/05(月) 15:54:03
連続したダブルクオートはどう解釈されるのでしょうか?
char *s = "Hello ""World";
printf( "Minasan ""konnitiwa\n" );
はそれぞれ、
char *s = "Hello World";
printf( "Minasan konnitiwa\n" );
と同じになる様ですが、どういった規約でそうなるのでしょうか?

726 :デフォルトの名無しさん:2007/03/05(月) 16:22:09
連続した文字列リテラルは連結されるという規則がある。
const??char??*s??=??"hello,??"??"world";
⇒const??char??*s??=??"hello,??world";

727 :724:2007/03/06(火) 13:45:49
>>726
ありがとうございます。

>>723
1行目:scanf("%s",&gyo);gyo=-1;
%s は文字列読み込み。 gyo=-1 は gyou-=1 では?
6行目:scanf("%s",str);
str は充分な文字数を確保してありますか?充分な文字数を確保しても危険で、
scanf("%60s",str); の様に文字数を制限するべき。


767 :デフォルトの名無しさん:2007/10/20(土) 18:04:03
質問です。
大きな整数を扱うプログラムが書きたいため、
多倍長演算について学びたいのですが、資料がなかなか見つかりません。
どなたか良い本、サイト、ご存知ないでしょうか?

829 :天使 ◆uL5esZLBSE :2011/07/01(金) 22:27:43.63
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?


http://hibari.2ch.net/test/read.cgi/tech/1031374980/l50人気ブログランキングへ

学ばないブログ
忍者AdMax
記事検索
最新コメント
QRコード
QRコード
  • ライブドアブログ