【雑談】C/C++【その1】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGC++に関する質問は
***すれ立てるまでもない質問はここで 第60刷***
http://pc5.2ch.net/test/read.cgi/tech/1097034002/
C言語なら俺に聞け! Part 93
http://pc5.2ch.net/test/read.cgi/tech/1098007606/l50
等でどうぞ。
このスレの方針としてはC++/Cに関するあくまでも雑談がメインです。
なぜやってるのかとか何ではじめたのかとか。
最終的にこんな事をやってやるとか、
あくまでも夢物語の話をしてください。
(現実WindowsクラスのOS作れる人はご勝手にどうぞ w
マターリsage進行でスタート
0002デフォルトの名無しさん
NGNG00031
NGNGCSSとか勉強してたのですがやっていくうちに凝りだして
最初はグラフィック関係PhotoShopとかIllstratorとか勉強しだして
次に掲示板を自作したくなってPerlとかCGIの勉強しはじめました。
そうこうしてる上でC++ででもCGIが動くんだって知って、
C++本格的に勉強しようと思い始めたのですが、
Hello.exeとか簡単なのから対話形式の簡単なプログラム
よく解説サイトに載ってるようなのを実行できるように
なりはじめて思ったのですが、
よく考えたらC++って結局何が出来るの?
ってのが頭をよぎりました。
そりゃいろいろプログラムって出来るんだろうけど、
果たして自分にできるのだろうか?
で、皆さんどうですか?
最終的にこんなの作ってやるみたいなのあってやってますか?
それとも比較的なんとなく覚えられたらいいなぁ〜ぐらいの
テンションでやってますか?
それとこんなの作りたいみたいなのも教えてもらえると
モチベーションあがりそうなんであったら教えてください
0004デフォルトの名無しさん
NGNG言語毎に向き不向きがあるのは当然だ。
>そうこうしてる上でC++ででもCGIが動くんだって知って、
C/C++を先に知ってる立場からすると、むしろ
「PerlでもCGIが動くんだ」
という感想だった。
0005デフォルトの名無しさん
NGNG標準入力と環境変数を読めて標準出力に書ける処理系だったらなんだって
CGIは組めるんだが…。
で、unix系OS出身の言語処理系でこれらの機能を持たないものはまずあるまいて。
0006デフォルトの名無しさん
NGNG結果がブラウザに出るだけだから、どちらが良いのかはっきり分からないのかもしれないけど、
BASICから入った俺にとっては、初めてCを使ったときは感動したよ。
恥ずかしい話だが、「うお!ネイティブでアプリが動いてる!早いよ!」ていう感想だった。。
N88BASICというソフト上じゃなくて、MSDOS上で直接アプリが動かせるのが
うれしくてしょうがなかった。処理も圧倒的に速かったし…
かれこれ10年以上前の話だが…
そんなこともあってか今は仕事上JAVAやPHPも使ってはいるけど、
個人的にはC/C++が一番好き。ネイティブな感じがして。
0007デフォルトの名無しさん
NGNGあの本でつけたおかしな知識を払い落とすのに随分苦労したよ。
いまだにトラウマになってる。
初めてプログラムに触れたのはFORTRAN77なんだけど、
実機なんて小学生に触れる時代じゃなかったんで本で読んだだけ。
その後8080アセンブラ、BASIC、Z80アセンブラ、PascalときてCにたどり着いた。
そこで三田の本。おれ頭悪いんだから、こんなひどい本を世に出さないでくださいよー。
たのんますよアスキーさん。その後この本はオーム社に移ったみたいだけど、
今でもあるのかどうか不明。
MS-DOSではCと8086アセンブラが半々くらいでした。
今はCはほとんど使わないっす。PerlやRubyやPHPやSchemeで楽々プログラミングっす。
性能が足りないなと思ったときに引掛る部分をCで補ってやるだけ。
C++はほとんど使ったことないっすね。
>>6
BASICからネイティブコードに移ったときの感動はおれも覚えてますよ。
もう何もかも別世界。速い! わけわかんない! ってねw まだCはなくて、
アセンブラの世界でしたから。
0008デフォルトの名無しさん
NGNG「マタリsage進行でスタート」と言いながら
自らその禁をやぶってるのはなぜ?
0009デフォルトの名無しさん
NGNGC++に関する質問を「C言語なら俺に聞け! Part 93」でされても困るんだが。
0010デフォルトの名無しさん
NGNGアンケート見つけた。
ttp://www.kde-look.org/poll/index.php?poll=102
んでC++に入れた。他はJava,Perlしか経験無いけど。
0011デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1071815622/
0012デフォルトの名無しさん
NGNG暗黙の型変換と演算子オーバーロードとtemplateと例外と
それらを組み合わせた変態ライブラリがない言語なんかうんこですよ!
C++最高!
でもプリプロセッサはいらない。もっとかっこいい仕組みに乗り換えてもいいころだと思う。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG何か別の値を返すのならともかく今のところ何も返していないじゃないか。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGハゲ同
iterator::operator ++
みたいに自身の参照を返して欲しい
>>18
どいうこと?
0020デフォルトの名無しさん
NGNGtemplate <typename In>
In std::advance(In &x)
{
return x + 1;
}
のような函数ではないことがひと目で分かるってことだろ。
002120
NGNGけど、まあ、分かってくれ。
0022デフォルトの名無しさん
NGNGこれマイコーディング規約。
0023デフォルトの名無しさん
NGNG#include <string>
using namespace std;
class Abstract {
protected:
static string str;
public:
virtual void method() = 0x00;
};
class Specific : public Abstract {
public:
Specific() {str = "これコンパイルできる?";}
void method() {cout << str << endl;}
};
int main() {
Abstract* a = new Specific();
a->method();
delete a;
return 0;
}
0024デフォルトの名無しさん
NGNGできるよ
リンカエラーは出るけど
0025東京工業大学卒ひきこもり
NGNG−−−−−−−−−−
東京工業大学を志望する酔狂な受験生諸君!
特に地方から上京しようとしている諸君!
俺のような東工大卒ヒキコモリを増やさない為にも今からでも遅くはない!考え直せ!
東工大などバブルの絶頂期、一流大学を出ていれば一流企業に入れた頃の遺物だ
東大卒でも無条件に一流企業に入れる時代ではなくなった現在
学歴としても中途半端な東工大に行く事に何の意味がある
大手企業は今は学歴ではなく面接で採用の可否が決まるのだ
実験等で忙しく自由な時間が少ない上にキモヲタやひきこもりの巣窟である東工大よりも
適当にレポートを書けば単位が取れ、サークルやアルバイトに勢を出せる私学のほうが遙に有利
そこで理工系ならメーカーの研究職に就けばよいだろうという意見が出てくる
しかし!東工大を出ていればメーカーに入れるなどといった考えは過去の遺物
現在は、一日平均12時間以上、月に400時間近い勉強量が求められる
大学院というものを卒業しなければ、強力なコネでもない限りはまず入れない
まさか大学院に行ってまで猛勉強をしようと思っている兵は流石にいないであろう
しかし現在の研究職はこの常軌を逸した勉強に耐え抜いた超人のみが入れる狭き門なのである
学問の探求の為に大学に行き将来は教授を目指すというのなら止めはしない、素晴らしいことだ
そして途中で方向転換して企業に就職というのは無理であるということも忘れるな
しかし就職がよさそうだから東工大に行くというのは絶対に止めろ!止めるんだ!お願いします!
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG良スレハケーン(大学受験板)・・・スレタイを見よ。
http://school4.2ch.net/test/read.cgi/kouri/1102125273/
なんともム板にふさわしいスレタイではないか。「真」だ!!!
0028デフォルトの名無しさん
05/03/01 16:03:100029デフォルトの名無しさん
2005/06/03(金) 06:32:400030デフォルトの名無しさん
2005/06/03(金) 06:33:560031デフォルトの名無しさん
2005/06/03(金) 07:00:040032デフォルトの名無しさん
2005/07/13(水) 00:26:190033デフォルトの名無しさん
2005/07/13(水) 13:18:58ガッ!
0034デフォルトの名無しさん
2005/07/19(火) 00:05:07先日 logic_error について他の人に説明したところ
「assert() でいいじゃん。」と言われました。
とっさに反論できず。
「デバッグでしか有効でないのがassert()、
リリースでも有効なのがlogic_error()。」
とも思いましたが、
リリースでlogic_errorが有効でいいのか?とも思い、
どう使い分けていいのかわからなくなってきました。
std::logic_error() と assert() の使い分けについて、
もしくはそもそも全く別物だというのでしたらその論理について、
教えて戴ければ参考にしたいと思います。
以上です。
0035デフォルトの名無しさん
2005/07/19(火) 00:45:42ttp://www.microsoft.com/japan/msdn/library/ja/jpdndeepc/htm/deep061799.aspより抜粋
Rationale(論理的根拠)
標準 C ライブラリの例外メカニズムには、C++ の根本的な問題があります。
・デストラクタを認識しない。こうしたメカニズムはすべてC用にデザインされて
いるので、C++デストラクタを認識しません。特に abort、exit、longjmp は、
スタックをさかのぼっている間またはプログラムの強制終了中に破棄された
ローカル オブジェクトに対しデストラクタを呼び出しません。
上のはあくまでもmicrosoftの実装ではの話だが、assertは他の環境でも
デストラクタを呼び出さない場合の方が多いのではないか(未確認)。その場合、
std::logic_errorを投げれば正常に開放されたはずのリソースがassertでは開放
されない可能性がある。
0036デフォルトの名無しさん
2005/07/19(火) 00:45:50シロさんですか?
0037デフォルトの名無しさん
2005/07/19(火) 08:09:16cppllに似たような質問がありましたよ
0038デフォルトの名無しさん
2005/07/19(火) 12:48:31あと、 templete 関係でコンパイルエラーを出してしまうと死ぬほどエラーメッセージが
出るのって、あれなんとかならないんですかね?
0039デフォルトの名無しさん
2005/07/19(火) 14:33:46まあ95%くらいはだいじょうぶですよ
> あれなんとかならないんですかね?
死ぬほど長いエラーメッセージを読む練習をするというのはどうでしょう?
0040デフォルトの名無しさん
2005/07/19(火) 15:00:18std::EOF とかで使えないのってちょっと変な気がするのですが、私だけでしょうか?
0041デフォルトの名無しさん
2005/07/19(火) 15:22:03仕様です。
つーか、過去との柵で仕様がなかったんです。
0042デフォルトの名無しさん
2005/07/19(火) 16:05:35つ#pragma warning(disable:4786)
0043デフォルトの名無しさん
2005/11/18(金) 07:19:49どーゆーこと?
0044デフォルトの名無しさん
2005/11/18(金) 09:11:13マクロ定数にはスコープ解決演算子をつけられない。
0045デフォルトの名無しさん
2005/11/19(土) 00:57:560046デフォルトの名無しさん
2005/11/19(土) 22:51:12あーなるほど
C++のdefine冷遇もここまでくると害だね
0047デフォルトの名無しさん
2005/11/19(土) 23:12:04プリプロセスとコンパイルは完全に別処理という建前だから。
0048デフォルトの名無しさん
2005/11/22(火) 12:14:53さぁ始めよっと
0049デフォルトの名無しさん
2005/11/22(火) 12:19:56参照できるサイトありますか?わかる人いますか?ヒントください><
もう三ヶ月悩んでます、助けて
馬鹿な為ほんとプログラムわからないんです
0050デフォルトの名無しさん
2005/11/22(火) 12:22:510051デフォルトの名無しさん
2005/11/25(金) 07:23:23ごまかせるのは自分だけで、他人はごまかせませんが :-)
0052デフォルトの名無しさん
2005/11/25(金) 12:31:03じゃあ、似非日本語が解らない。
でいい?
>その4点の一番大きい値から小さい方へいくプログラム
これで何がしたいか解る奴、回答宜しく。
0053デフォルトの名無しさん
2005/11/25(金) 12:42:29http://pc8.2ch.net/test/read.cgi/tech/1131443284/134
http://pc8.2ch.net/test/read.cgi/tech/1132102992/285
http://pc8.2ch.net/test/read.cgi/tech/1130680264/291
0054デフォルトの名無しさん
2005/11/25(金) 14:43:23> でいい?
いいえ。普通に「私は日本語がよくわからない」と書くのが正解です :-)
0055デフォルトの名無しさん
2005/11/26(土) 09:48:07因縁ふっかけてないで
>その4点の一番大きい値から小さい方へいくプログラム
説明宜しく。
0056デフォルトの名無しさん
2005/11/26(土) 10:08:17粘着してないで宿題スレを見てきなさい。
0057デフォルトの名無しさん
2005/11/26(土) 22:13:53それに、問われたことに答えるのは因縁をつけることにはなりません :-)
0058デフォルトの名無しさん
2005/12/28(水) 10:26:33またCGIを記述するのに使ってもいいじゃないと思うんだが
0059デフォルトの名無しさん
2005/12/28(水) 10:42:35C++をCGIに使わないのは、便利さだけが理由ではありませんね。
0060デフォルトの名無しさん
2005/12/28(水) 10:56:560061デフォルトの名無しさん
2005/12/28(水) 11:43:24まして意図的な破壊を企てる輩にコンパイラを解放するのは危険極まりない。
#公開サーバには開発環境を入れず、充分枯れたCGIだけをインストールするようにしないと。
0062デフォルトの名無しさん
2006/01/01(日) 23:28:23年末にはVC++2005に付随してC++/CLIが出たけど,
俺としてはC++ 0xのほうがよっぽど気になる。
0063デフォルトの名無しさん
2006/01/02(月) 00:02:33vc8からしてバグだらけだからな
0064デフォルトの名無しさん
2006/01/02(月) 00:44:04個人的には、ドライバや組み込みで安心して使えるようなSTL系ライブラリがほしい。
STLのコンテナですらドライバとか書くにはゴージャス過ぎるような気がするんだよなぁ。
0065デフォルトの名無しさん
2006/03/07(火) 22:37:53};
↑ここってセミコロンいるの?
0066デフォルトの名無しさん
2006/03/07(火) 23:12:18いらない
0067デフォルトの名無しさん
2006/03/07(火) 23:43:51どもです
付けても問題ないと思うけど
これからは外しておくか
0068デフォルトの名無しさん
2006/03/08(水) 00:22:09while (1)
{
// ...
};
else
//...
0069デフォルトの名無しさん
2006/03/08(水) 00:48:08{
while (1)
{
// ...
}
}
else
{
//...
}
0070デフォルトの名無しさん
2006/03/14(火) 03:46:43そういう一貫性のなさがC系言語だよな
0071デフォルトの名無しさん
2006/03/14(火) 20:18:36って覚え方を今思いついた。
でもC++では宣言は文の一種だからこの覚え方は間違ってる。Cだと正しいけどね
0072デフォルトの名無しさん
2006/03/14(火) 22:05:06そのときの } は複文の終わりと言える。
0073デフォルトの名無しさん
2006/03/15(水) 01:06:21struct foo {
int bar;
int baz;
} fooz = {1, 3};
0074デフォルトの名無しさん
2006/03/15(水) 08:29:07Cの場合、(C99でも)宣言は文ではないから「}で終わる文は;は不要」に当てはまらない。
しかしC++は宣言文と言う文の一種。
71もそう言っているだろ。
0075デフォルトの名無しさん
2006/03/15(水) 10:53:18{で終わる文なのに;が必要な例をあげようとしたんじゃないの?
でも、struct foo {...} fooz = {1,3} は「式」だから「}で終わる文」ではないよ。
0076デフォルトの名無しさん
2006/03/15(水) 10:57:000077デフォルトの名無しさん
2006/03/17(金) 12:24:17do-while文の本体はブロックである必要はないってのが明後日の方向を向いた突っ込み
0078http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 20:41:57もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0079デフォルトの名無しさん
2006/03/28(火) 17:24:460080デフォルトの名無しさん
2006/05/12(金) 09:29:24華麗なるage。
0081デフォルトの名無しさん
2006/05/19(金) 23:56:320082デフォルトの名無しさん
2006/05/21(日) 04:34:51プの字も知らない俺が今からC++勉強します。
先ほど統合開発環境というものをDLしてきました。
いきなりちんぷんかんぷんですがめげずに頑張ります。
0083デフォルトの名無しさん
2006/05/27(土) 19:46:150084デフォルトの名無しさん
2006/06/10(土) 03:33:42その課題の一部に例文が書いてあり、これを利用してプログラムを作りなさいと書いてあった
以下引用
#include<stdlib.h>
int a;
double x;
a=rand();
x=(double)a/32768.0;
xは、区間[0,1)の一様乱数の標本値である
関数 rand()は、呼び出す毎に異なった値(0 - 32767)を返す
ここまで。
ここの住人の方なら、この課題参照文が、どれだけ大誤りな事をしでかしてるか分かると思います。
0085デフォルトの名無しさん
2006/06/10(土) 03:34:14デバッグトレースしてみて、ひどいことをしているのが露見。
rand()が返す値は、(0 - 32767)ではありません。(0 - RAND_MAX)の値なんです。
た ま た ま、VC++シリーズのstdlib.hが、#define RAND_MAX 32767 と書いてるだけの話
VC++で組んでたら、この間違いに気づかず、後で移植した時に大わらわになりやがりますw
stdlib.hの定数なんて、プラットフォームによって、まちまちな事が多いし、こういう事をするのは大変危険で恐ろしい大誤りです。
以下自分なりに考えた正答
上の例文の、最後の行を以下の様に直す
x=(double)a/((double)RAND_MAX+1);
これで正常に動作が確認できました。
一応理系の情報通信の教授から出された課題なんですが、その道のプロである人でも、こういうことやっちゃうんですね...
ちょっとこりゃないぜと思いました
皆さんどう思います?
0086デフォルトの名無しさん
2006/06/10(土) 03:52:290087デフォルトの名無しさん
2006/06/10(土) 05:28:08C++のファイル拡張子って、cppとccそれにcxxなんてのもあったりするけど、これってどういうの歴史的があるのかな?
0088デフォルトの名無しさん
2006/06/10(土) 05:41:18それを言うなら「歴史的経緯」だろうがカス。
0089デフォルトの名無しさん
2006/06/10(土) 08:30:230 から RAND_MAX の範囲内の int 型疑似乱数を返します。srand 関数を使って疑似乱数ジェネレータを初期化してから、rand 関数を呼び出してください
0090デフォルトの名無しさん
2006/06/10(土) 10:26:14.C なんてのもあるぜ。
0091デフォルトの名無しさん
2006/06/10(土) 14:27:090092デフォルトの名無しさん
2006/06/10(土) 14:42:18>>86
普段はそんなシロウト臭いの使わないからじゃネーの
馬鹿学生用にレベルを落としたら、低レベルの粘着がココに来てるだけにしかみえんな
お前以外にそんな下らんことなど気にならん。
0093デフォルトの名無しさん
2006/06/10(土) 14:57:05だってそんなプログラム書いたら明らかに危険じゃん
思わず背筋凍りそうになったよ
ANSI Cでプログラム書くとき、汎用性のないプログラムを書くのは危険
0094デフォルトの名無しさん
2006/06/10(土) 15:21:22俺なんか思わず射精しちまったぜ。
0095デフォルトの名無しさん
2006/06/10(土) 18:47:08初心者にはRAND_MAXより数値を書いた方が意味が分かりやすいからな。
それが時代が変わって動かなくなっただけ。
例題のコードを危険とか安全とかいう目で見る方がどうかしてる。
0096デフォルトの名無しさん
2006/06/10(土) 18:48:02普段からそんなシロウト臭い (プリプロセッサシンボルを使わない) ことをしているからでしょう。
0097デフォルトの名無しさん
2006/06/10(土) 19:21:0492だが、知らんよそこのボケ学生の相手がどんなやつかなんかw
stdlibの乱数なんかどうでもいいだろってことだよ
てかさ、お前にとってプリプロセッサシンボルを使わないかどうかが大切なのかも知れんがナ
馬鹿らしくて射精されてんだ、もうやめろよ。低俗な話題もいいが引き時があるだろ。
0098デフォルトの名無しさん
2006/06/10(土) 20:35:24いいじゃん、雑談スレなんだから。
0099デフォルトの名無しさん
2006/06/10(土) 20:49:49ttp://www001.upp.so-net.ne.jp/isaku/rand.html
0100デフォルトの名無しさん
2006/06/15(木) 00:34:51そいつ線形合同法の「線形」の意味を全く理解してないな。
理解してたらsrandom()の使い方がおかしいことはすぐわかるだろうに。
0101デフォルトの名無しさん
2006/06/15(木) 02:09:27お前、馬鹿?
0102デフォルトの名無しさん
2006/06/15(木) 06:02:47言い返せないのをそこまで丸出しにするなよw
屁理屈の一つくらい用意すればいいのに。
0103デフォルトの名無しさん
2006/06/15(木) 07:50:30馬鹿なのがよくわかった。
これだけだと端から見て難癖つけてるだけにしか見えないから少しだけ補足しとくと
あれはそういうテストをしてるコードだ、馬鹿。
0104デフォルトの名無しさん
2006/06/16(金) 02:13:47あまり上手くないですね、あなたw
0105デフォルトの名無しさん
2006/06/16(金) 07:05:04安心しろ、補足したのはお前の為じゃない。
馬鹿に説明しても無駄だからな。
0106デフォルトの名無しさん
2006/06/16(金) 08:03:590107デフォルトの名無しさん
2006/06/17(土) 13:57:30お前は85,91,98なのか?
だったらもう消えたほうがいいよ
99から100に5日も空いている時点でカコワル杉
0108デフォルトの名無しさん
2006/06/17(土) 14:04:37今99のサイト見てきたw
確かに100とか102は日本語も読めない恕低脳なのが良くわかった。
サイトのタイトルぐらい読もうね>>100,102
0109デフォルトの名無しさん
2006/07/25(火) 20:36:07# 四年に上がるまでにはソース打ち込んだり問題解き終わったりしたいなぁ…
0110デフォルトの名無しさん
2006/07/27(木) 11:07:17識別子名に使えるわけではないし、演算子や構文要素の一部になっていた記憶もない。
0111デフォルトの名無しさん
2006/07/27(木) 12:45:55■ このスレッドは過去ログ倉庫に格納されています