1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
83 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 06:38:58 ] >>80 C++でも良いんですか? もし良ければSTLを使ってノードを管理すると簡単と思います
84 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 06:57:59 ] >>82-83 レスありがとうございます。私の修行が足りないようで、お恥ずかしい限りです。 勉強して理解を深めてからもう一度出直してきます。スレ汚してすみませんでした。
85 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 07:23:05 ] すこし作ったよ #include <vector> #include <iostream> #include <set> using namespace std; class node { public: unsigned int dis,ver; node(){ ver=dis=-1;} node(unsigned int i, unsigned int d){ dis=d; ver=i; } bool operator < (const node &x) const { return (dis<x.dis); } }; typedef set<node> vertex; main(){ vector< vertex > g; //グラフの定義 g.push_back(vertex()); //頂点追加 g[0].insert(node(1,3)); //辺と距離の追加 g[0].insert(node(2,5)); g[0].insert(node(3,2)); vertex::iterator p=g[0].begin(); cout<<(p->ver); // 最も短い距離の頂点を出力 }
86 名前:デフォルトの名無しさん [2008/03/31(月) 11:15:09 ] VC++2008EEで勉強中なのですが、 いろんなサイトの見よう見まねで下記ソースを試してみたところ ビルドして一瞬ウィンドウが出て終わってしまいます。 これはreturn 0のせいかと思って、return 0を消しても やはり一瞬で終わってしまいます。 どうすれば終了しないでコマンドプロンプトのような画面で 文字が確認できるようになるのでしょうか。 #include <iostream> int main(void){ using std::cout; using std::endl; int a; int &alias = a; alias = 100; cout << "a = " << a <<endl; cout << "alias = " << alias <<endl; return 0; }
87 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:32:42 ] getchar(); return 0;
88 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:41:03 ] >>87 ありがとうございます!ようやく確認できるようになりました。 キーボード入力待機状態にして止めるんですね。 勉強になりました。
89 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:41:05 ] Ctrl + F5
90 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:45:24 ] >>89 デバッグなしでビルドというのでも止まるんですね。 ありがとうございます。 C言語はいろいろ解らないことばかりで非常に助かります。
91 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:48:00 ] >>86 コマンドプロンプトで実行するか、>>87
92 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:04:44 ] >>90 それらはCの知識ではない。Windowsの使い方の知識とVisualStudioの使い方の知識だ。
93 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:36:21 ] >>84 Boostのグラフライブラリを使う
94 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:10:05 ] builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm ポインタの勉強をしているのですがサンプルのコードを動かしてみたところうまくいきません
95 名前:デフォルトの名無しさん [2008/03/31(月) 14:13:24 ] もうアパートを探すのはつかれたよ。 はやくプログラミングしたいよ。
96 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:20:17 ] >>94 コメント欄がすごいことにw
97 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:23:25 ] >>94 もうこの人終わりだなw
98 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:28:30 ] int *n; *n = 5; /* ポインタ変数nに値5を代入 */ 初期化もポイントする先も決めてないポインタをそのまま使うのって非常に不味いよねぇ 自分ははじめにポインタの初期化を必ずするよう教わったがなぁ
99 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:40:39 ] >>96 >>97 あー、前スレで話題になった奴か。 エピステーメーにまで指摘されていたのに未だに記事の修正が入らないのね。 編集がコメントなにやらゴミを書いているけどそんなものは記事の修正とは認められないし。 この程度のコメントじゃZDNETとしても著者としても痛くも痒くもないのでしょ。
100 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:46:23 ] >>99 もしや本人さま(えぴさん)で?
101 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:48:48 ] どうなるか、サンプルソースをコンパイルして実行してみたら思った通り以上終了w フォールト ->00401007 c70005000000 mov dword ptr [eax],0x5 ds:0023:00000001=???????? だってさ。 *n = 5: の部分かな。エラーがソース乗せちゃまずいでしょw
102 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:49:42 ] × エラーがソース乗せちゃまずいでしょw ○ エラーがでるソース乗せちゃまずいでしょw
103 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:54:00 ] >>101 コンパイラにもよるんじゃね? いや、試してないけど
104 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:55:06 ] 見てないけどエラーを修正しなさいって問題なんだろ
105 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:56:59 ] あんまり往生際悪いんで吹いたww
106 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:57:20 ] 「動くけど危険」とかいう話じゃなくて「動かない」コードだろ、これは
107 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:59:25 ] >>101 必ずしも 異常 終了するとは限らない ポインタの指す先による >>106 場合によっては動くコード
108 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:03:01 ] 最適化をオフにして次のコードを実行すると… 勘弁してほしいタイプのバグ #include<stdio.h> void hoge(void){ static int a=5; int *n=&a; printf("a=%d\n", a); } void huga(void){ int *n; *n=100; } int main(void){ hoge(); huga(); hoge(); return 0; }
109 名前:99 mailto:sage [2008/03/31(月) 15:13:55 ] >>101 落ち着け。「以上終了」になっているぞw >>100 勘弁してくれ。一緒にされたらそれはそれで迷惑だ。 もし私がエピたんなら、自分のブログでネタにしているよ。 いや、それだと本人が書いていたら拙いな。 ……と思って検索したら、やっぱり書いていたかw で、ついでにうろついたらまぁ、他にも釣れた罠。
110 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:21:40 ] επιστημηってプログラム系の掲示板でよく見かけるけどなんの人なの?
111 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:30:11 ] 掲示板でよく見かけるヤツは偽者 自称C++のちょっと偉い人
112 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:31:34 ] C++の黎明期からC++に関わってきた人。 かといって、C++の隅から隅まで知っているわけではなくて、 Boostのコミッタというわけでもなくて、 意外に中途半端な立ち位置な気がするお人。 でも、俺より知識も経験もあるのは確実。
113 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:32:34 ] 魚拓とっておこうと思ったら既に3つも取られてたw
114 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:33:23 ] エイプリルフールは明日だ
115 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:36:26 ] なんか冒頭に追記が > 現在、本稿には技術的観点から異議が多数寄せられているため、詳細をレビュー中です。 > 初めてご覧になる方は、コメント欄もあわせてお読み下さい。 > また、読者の皆様には引き続き、コメントなどでご意見を頂けましたら幸いです。 そんな大層なレベルの話なのか…?
116 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:39:40 ] >現在、本稿には技術的な誤りが存在するため、詳細をレビュー中です。 >初めてご覧になる方は、コメント欄もあわせてお読み下さい。 >また、読者の皆様には引き続き、コメントなどでご意見を頂けましたら幸いです。 厳しくなったw
117 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:44:52 ] 初心者にとってポインタの概念ってそんなに躓きやすい物なのか? ポインタの基本的な部分で苦労したことがないのでそこら辺が不思議だ
118 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:45:30 ] >>94 おい。間違えて「記事推薦者になる」ってとこクリックしちまったぞ。 どうやって取り消すんだ。おい。教えろ。
119 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:50:36 ] >>117 昔教える立場にあったことがあるが、何でかしらんが分かる奴と分からん奴がいて、 分からん奴はいくら教えてもなかなか理解してくれん。 メモリってのがリニアな空間で位置や距離の概念があることを理解できないらしい。
120 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:55:35 ] 番地とか分かりやすいものに例えればいいんじゃね?
121 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:56:25 ] >>118 ワロヌ
122 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:00:32 ] >>117 俺もそうだけど、アセンブラから入ると、「ポインタが分からない」と言う人がどう分からないのか分からない 新人に教えるときなんかにとても苦労する
123 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:07:17 ] 変数:戸棚 値:ケーキ ポインタ:「戸棚にケーキがあります」という母ちゃんの置き手紙
124 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:09:03 ] >>123 訳わからんw
125 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:17:56 ] >>123 戸棚の場所が書いてあるメモ、なんじゃね?
126 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:25:27 ] 変数: 箱や器のようなもの 値: 箱にいれる何か ポインタ: 箱が置いてある場所を書いてあるメモ みたいな解釈でいいんだろうか? ポインタを正しく理解できてるか自分でもよくわからん。
127 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:25:38 ] ケーキを食った後置き手紙を始末しないと後の人が迷惑するという話か
128 名前:99 mailto:sage [2008/03/31(月) 16:31:08 ] いや、置き手紙はそのままで戸棚に「中身は俺の腹の中」って書いておくんだろ。
129 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:38:46 ] JAVAの本を書いている人みたいだけど、 これほどポインタの概念がわかってなくても 使えるのか、JAVAって。 ある意味うらやましいかも。
130 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:45:21 ] >>128 そして後から置き手紙を読んだワカメが大激怒
131 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:45:51 ] >>129 でも、ポインタも理解できないような人が書いたJavaのコードって、やっぱりどこか危なげなんじゃないかね
132 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:47:44 ] >>130 Access Violationのメッセージボックスのアイコンに、ワカメの顔が表示されるとこ想像した。
133 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:52:23 ] >>129 それらの本も、もしかすると同じようにでたらめな知識に基づいて書いてるんじゃないかと疑わざるを得ない気がする。
134 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:06:45 ] >>131 参照がBoostのスマートポインタと同じようなもので 理解できない人は怪しいコードいっぱい書くことに
135 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:11:39 ] (Javaの)参照がBoostのスマートポインタと同じようなものってこと? なんで*Boostの*って制限を設けるか理解しかねるけど、 Javaの参照はポインタそのものと同じようなもので、 それに加えて参照されなくなってからは回収される可能性があるだけ。 C++でのスマートポインタはローカルに限れば基本的にスコープを抜けた時点で回収されるから、 JavaのGCとは少し違う。
136 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:17:49 ] 自分の知らないところでチョコチョコされる行動まで把握しないといけないのは面倒だが かといって自分で何もかも把握して処理するのも面倒 なかなかバランスが難しいのねぇ
137 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:20:59 ] 個人的にはRAIIは気に入ってるというか、いい方法だと思うんだけどなぁ。 もっとC++成分を取り入れたJavaライクな言語とかあればうれしいんだけど。
138 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:07:30 ] それならDを試してみてはどうだろう。
139 名前:デフォルトの名無しさん [2008/03/31(月) 19:35:48 ] Dは頭の悪そうな言語名だから使いたくない。
140 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 19:38:06 ] 頭の悪い人程そういうことを気にするもんだな。
141 名前:デフォルトの名無しさん [2008/03/31(月) 19:39:18 ] 予想通りのレスだな。
142 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 19:44:39 ] >>139 豆腐屋っぽいよね
143 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 19:47:25 ] D は使って欲しかったらまず言語仕様を安定させて欲しい。
144 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 19:51:40 ] python + cpp + java = D (という予定)
145 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:04:37 ] C++にもっさり毛が生えたのがD
146 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:11:27 ] D1.0は仕様確定したよ。
147 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:13:03 ] 2.0 へ移行することになったときに 仕様が違いすぎて大変なので面倒くさい。
148 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 21:44:25 ] >>126 違うよ。 値は数値とか文字列とかの事で、変数は値につける名札で、ポインタは値がアドレスの変数の事だよ。
149 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 22:37:22 ] >>148 エロ本が変数で、収録されてる写真が値 ポインタはエロ本という変数で(便宜上*がついてる、というかポインタであることの証)、そのポインタの値はページ数 ってな理解でいいの?
150 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 22:52:48 ] エロ本は型で、デラベッピンが変数じゃね
151 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 23:07:50 ] デラベッピンはエロ本の派生クラスだ。
152 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 23:08:45 ] エロ本が概念でデラベッピンが型だろう
153 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 23:12:31 ] 確かに
154 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 00:20:55 ] お前らw
155 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 00:25:05 ] よりによってでらべっぴんを用いるところに何らかの意図を感じる
156 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 01:34:06 ] エロ本としてではなく美術書として扱う場合、これは派生なの?
157 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 01:56:47 ] それは扱う側が決めることだろ どう使われようがしったこっちゃない
158 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 08:09:08 ] >>156 インターフェースとして定義したクラスを継承
159 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 08:51:50 ] >>149 >エロ本が変数で、収録されてる写真が値 この解釈だとエロ本はunionの配列で、ページ数は配列のindex。
160 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 08:52:39 ] C/C++のポインタの機能--参照渡しのような処理 - builder by ZDNet Japan builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20370255,00.htm このサイトのドコがおかしいのでしょうか?
161 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 09:02:23 ] 本人? コメント欄の通り
162 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 09:50:07 ] それは4/1のために用意された記事だからあまり真に受けないほうがいい。
163 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 10:54:05 ] >>160 >このサイトのドコがおかしいのでしょうか? 殆ど全て。
164 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 11:53:26 ] サイトってw 普通に「記事」とか言えよ 安っぽい釣り針だな
165 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 11:56:11 ] 碌に査読もせずにほいほい載せちゃうようなサイトだからな。何かおかしいだろ。
166 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:36:03 ] 嘘を嘘と
167 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:56:31 ] 編集がコメントで悪足掻きしたり、著者の有り得ないコメントを代理掲載しているくらいだからね。
168 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 15:17:06 ] 記事のサブタイトルが「変数の場所(アドレス)」に変わったw
169 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 15:20:55 ] 推薦増えすぎw
170 名前:いっそ誰か転載してくれw mailto:sage [2008/04/01(火) 15:26:22 ] 一ページ目は修正掛かったようだけど、日本語が破綻している。 >ポインタ変数を定義するには、通常の型の場合とは異なり、型名の後ろに * がつけられる。 よくあるダメドキュメントのパターンである、主語と述語の関係が狂ってしまっている。 この文章は誰の手によるものだろうか。筆者? 編集? レビュアー? いっそ企画から遣り直しては如何だろうか。
171 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:03:48 ] 俺が筆者ならしばらくは人には会いたくないだろうなw はずかしすぐるwww
172 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:21:59 ] 「builder編集部 冨田」って人も大変だな。 しかし、事前の校正をしなかった報いだ。 この冨田って人が担当だったかどうかは知らんが。 builderの信頼性も、これで地に落ちたな(あったかどうかは不明だが)。
173 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:24:12 ] しかし、たったこれだけのコードの校正も出来ないってどれだけ不注意なんだ
174 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:35:58 ] プロのテクニカルライターだから信用してたんでしょ
175 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:37:49 ] かわうそうだからもうそっとしといてあげようよ
176 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:38:03 ] この連載、続くのか、打ち切りになるのか・・・
177 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:39:01 ] >>175 バンブーブレードのアニメを思い出したw
178 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:40:54 ] 前橋さんに書いて欲しい
179 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:41:47 ] え、連載なの?
180 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 17:10:38 ] >>164 スミマセン『記事』でしたね。でもCあまり判らないので。。。
181 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 17:11:33 ] builder.japan.zdnet.com/sp/c-programming-language/ 特集だな。 >>180 それはC言語の問題じゃないだろ。 日本語やり直せ。
182 名前:いっそ誰か転載してくれw mailto:sage [2008/04/01(火) 17:26:55 ] 問題は件のページだけではない。 こちらのページから引用してみよう。 builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20368158-2,00.htm -- データを区切る文字を空白などではないものにする方法だ。たとえば”%s,%s”とすれば、”abc def,ghi”を”abc def”と”ghi”という2つの値として入力することができる。 -- これも、実験してみれば直ぐに判るが出鱈目である。 一体全体、この特集はどんな技術者を作ろうと言うのだろうかw
183 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 17:44:37 ] 何の話かと思ったら、scanf()か