【初心者歓迎】C/C++室 Ver.105【環境依存OK】

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2019/04/25(木) 06:54:38.08ID:6xUIrXDu
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1545944692/

0952デフォルトの名無しさん2020/07/07(火) 07:56:58.77ID:bJbvn87/
>>949-950
「大丈夫、パイプカットしてるから」みたいな感じかも。
break や continue を「去勢されたgoto」って喩えるじゃない。

if のネストが深くなるのは嫌だし、
関数からの早期returnも(デバッガで追うのが面倒になるので)ダメ、
goto なんかもっての外、という時に do {} while(0); でゴニョゴニョと。

で、コンパイラさんに「常に偽となる条件式です」とか警告されるの。

0953デフォルトの名無しさん2020/07/07(火) 12:13:10.64ID:bEGKo5iM
>>951
はい、もちろん。
でもそれが2章でなくてもいいのかな、と。
出鼻くじく気満々やん、みたいな

0954はちみつ餃子 ◆8X2XSCHEME 2020/07/07(火) 13:48:51.21ID:tzlORGl2
>>953
選択肢があることが大事なんだって。

C の理屈だとビットパターンが並んだメモリ空間が広がっていてそこにオブジェクトを配置していくというモデルだから
ポインタを通してそこらを理解させるというのもひとつのやり方としてアリでしょ。
きちんとした理屈を後出しされると「先に言えや!」って気持ちになる人は少なくないと思う。

0955デフォルトの名無しさん2020/07/07(火) 19:09:26.79ID:v3ijliVb
ポインターの何がそんなに難しいと感じるのかわからん
コンピューターの処理なんてアドレス操作ばっかりじゃん

コンピューターの仕組みがわかってないからなのかな?
ならば言語学ぶ前にコンピューターの仕組みを学ぶのが先じゃね?

0956デフォルトの名無しさん2020/07/07(火) 19:39:25.64ID:aaXFzUCt
テスト問題にはポインタパズルとでもいうべきゴミみたいな問題が多いからね
わざわざ難しくして間違えるように幾重にも罠を張ったヤツ
そういうのでポインタ嫌いが増える

0957デフォルトの名無しさん2020/07/07(火) 21:02:20.63ID:yByKJQAn
サイズ100を100個用意するより
サイズ10000を1個用意してアドレス割り振るとか好き
ポインタ変数分サイズ増えるのは目をつむる確保速度重視

0958◆QZaw55cn4c 2020/07/07(火) 21:28:33.53ID:7uEBIb8C
>>945
私は ** を使うくらいなら *& の方がマシだと思っているのですが、 *& で書いた本はまったくないですね…

0959はちみつ餃子 ◆8X2XSCHEME 2020/07/07(火) 22:00:58.59ID:tzlORGl2
>>958
何をいいたいのかわかんないのでもうちょっとくやしく

0960デフォルトの名無しさん2020/07/07(火) 22:12:29.39ID:TeF3RSyR
あんだけクズをバカにしてたのに、同じエディタを使ってたなんて!

0961デフォルトの名無しさん2020/07/07(火) 22:17:27.53ID:4bY8cpqR
>>960
くやしいのうwwwww

0962◆QZaw55cn4c 2020/07/07(火) 23:10:29.18ID:7uEBIb8C
>>959
https://ideone.com/LnS5rf

>>945
こういうのも、やっぱりサドになりますか…

0963はちみつ餃子 ◆8X2XSCHEME 2020/07/07(火) 23:17:48.32ID:tzlORGl2
>>962
そういうデザインのプログラムがあっても不自然だとは思わないが、
初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元ちゃう?
& という記号の多義性がアレなのが根本原因ではあるんだが……。

0964◆QZaw55cn4c 2020/07/07(火) 23:21:02.99ID:7uEBIb8C
>>963
>初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元
そうかもしれませんね

>& という記号の多義性がアレなのが根本原因
まあ、そうですよね…

0965デフォルトの名無しさん2020/07/08(水) 08:50:17.72ID:sJ2uy93A
>>947-948
同じ人からの連続投稿、ひとつの質問だと気づかなかった。

マクロの実体を do {...} while (0) で囲む定型については
「#define do whole false」でネット検索すると色々出てくる。
この場で説明するには少々分量が多いのだ。

0966デフォルトの名無しさん2020/07/08(水) 09:23:35.50ID:hADFKHgu
そのうち
#define HOGE(FUGA) do{...FUGA...}while(0);
と描いてしまって失敗する

09679652020/07/08(水) 18:00:01.90ID:sJ2uy93A
あ、もちろん whole は誤り while で検索してくれ。

× 「#define do whole false」
○ 「#define do while false」

0968デフォルトの名無しさん2020/07/09(木) 20:13:12.08ID:gJQJWBxs
テキストファイルに文字列を書き込みしたいのですが

ofstream ofs("test.txt",ios::ate | ios::in);
ofs << "hoge" << endl;

これだと動いているんですが
最後のendlを無くして"hoge"のみを書き込もうとすると動作しません
どういった理由なんでしょうか?

0969デフォルトの名無しさん2020/07/09(木) 20:17:07.59ID:N+YU0rOq
flushしないと

0970蟻人間 ◆T6xkBnTXz7B0 2020/07/09(木) 20:22:54.18ID:2UhyUN9n
読み書きは時間がかかる処理だから、読み書きの前に、小さなデータは一時的にバッファという記憶域にまとめて
貯めておき(まあ、キャッシュと似たようなものだ)、改行などがあれば、押し流す(flush)という処理をする。
この場合はendlがflushの役割をする。

0971デフォルトの名無しさん2020/07/09(木) 20:48:42.31ID:gJQJWBxs
>>969 >>970
理解できましたありがとうございます!

0972デフォルトの名無しさん2020/07/11(土) 00:06:30.27ID:87hwO6K6
ポインタを初心者に完璧に理解させる方法分かったわ。
ポインタ=ショートカットアイコンと教えればいいんだ。

メモ帳に文字書いて保存して、ショートカットアイコン作って「これがポインタだよ」って言えばいい。
メモ帳の容量見てごらん?100kbでしょ?ショートカットアイコンの容量見てごらん?1kbしかないね。
ショートカット開いて。文章変えて。ほら1kbのデータで本体が変わった。これがポインタの仕組みだよ。

完璧

0973デフォルトの名無しさん2020/07/11(土) 00:21:04.14ID:lUabZX1b
ポインタの演算は?

0974デフォルトの名無しさん2020/07/11(土) 00:21:34.19ID:nv0BNjEd
その程度の抽象化ならポインタのこと直接説明すればいいと思う

0975デフォルトの名無しさん2020/07/11(土) 08:24:16.69ID:sGHMgavQ
住所録とかじゃダメなん?

0976デフォルトの名無しさん2020/07/11(土) 11:03:46.07ID:J0INoyBc
ポインタの躓き処ってそういう場所じゃないから

0977デフォルトの名無しさん2020/07/11(土) 11:18:32.94ID:60oNEnIZ
アセンブラから入ると
Cのポインタは色々と意味不明

0978デフォルトの名無しさん2020/07/11(土) 11:20:02.10ID:fm8o+adg
嬉々として大量に出題されるポインタパズルが難易度を無駄に押し上げてる
この時のアドレスは何か、変数は何かと、無駄に凝った問題を作り易いのがポインタの難点

テストのための問題を作る必要があって、そこではふるい落とす必要がある
全員100点じゃマズいと思ってる教師がいるからね
でも教育が成功したと言われる全員100点だとダメ
ここに現行教育の限界点がある
すると、問題難易度は加速しつつ急上昇する

しかも大して面白くもなんともない問題が製造される
穴埋めよりも酷いのが

0979デフォルトの名無しさん2020/07/11(土) 11:20:10.45ID:Rtii2xnW
レコード針みたいなもんじゃないの

0980デフォルトの名無しさん2020/07/11(土) 11:45:57.83ID:J0INoyBc
自称「教科書」が間違ってたりするからな
そういうミスリードが初心者をさらに混乱させてる

0981デフォルトの名無しさん2020/07/11(土) 11:47:30.73ID:60oNEnIZ
初心者用教科書は厳密じゃやくて良いんだよ

0982デフォルトの名無しさん2020/07/11(土) 11:49:05.50ID:60oNEnIZ
高校生の教科書に
ニュートン力学は間違ってるとか
幾何光学は間違ってるとか
この世はユークリッド空間ではない
とか書いても混乱するだけ

0983デフォルトの名無しさん2020/07/11(土) 12:12:13.44ID:J0INoyBc
>>981
百歩譲って厳密じゃないのを許すとしても
明らかな間違いは遺憾

0984デフォルトの名無しさん2020/07/11(土) 12:23:45.26ID:60oNEnIZ
技術書に明らかな間違い?

0985デフォルトの名無しさん2020/07/11(土) 15:56:25.03ID:sGHMgavQ
>>976
具体的にどういう場所なん?

0986デフォルトの名無しさん2020/07/11(土) 16:23:26.53ID:60oNEnIZ
& * の多義性
複合型の記述方法
メモリ確保解放
ポインタの型と演算の結果の違い
const, volatile

0987デフォルトの名無しさん2020/07/11(土) 20:36:15.52ID:87hwO6K6
わかってさえしまえば簡単至極なのに、これほど初心者に教えるのが難しいこともそうはないなw
配列や関数の戦闘アドレスの渡し方をわかりやすく出来てれば難しいと思えることもなかったかもしれない。

0988デフォルトの名無しさん2020/07/11(土) 20:47:57.04ID:kW8apoiX
戦闘アドレスと防御アドレスを使いこなして達人を目指せ!

0989デフォルトの名無しさん2020/07/11(土) 20:48:58.21ID:lUabZX1b
>>987
そうか?

0990デフォルトの名無しさん2020/07/11(土) 21:29:54.59ID:sGHMgavQ
チートコードはベースアドレスからの距離
ベースアドレスが変わってもチートコードは変わらない
ゲーム好きにはこんな感じか

0991デフォルトの名無しさん2020/07/12(日) 08:37:19.13ID:03QLQuvk
vc++でバリアント型って使えますか??

0992蟻人間 ◆T6xkBnTXz7B0 2020/07/12(日) 10:07:58.94ID:bazuV89L
>>991
Boost

0993デフォルトの名無しさん2020/07/12(日) 10:26:26.21ID:NK7E+AG5
pythonのctypes使うときに役に立ってる
ctypes.POINTERとか謎仕様過ぎた

0994デフォルトの名無しさん2020/07/12(日) 21:37:47.68ID:PErY82OB
C++って団塊ジュニアまでの言語って感じがする
これから爆発的に需要が伸びていく可能性なんてないよね?

0995デフォルトの名無しさん2020/07/12(日) 21:51:26.17ID:dmFXGwc3
伸びるとかよくわからんが
今時のウェーイってしている言語にしたって、大抵コア部分のライブラリやらランタイムやらはcやc++で書かれているのだから

その言語のお客様で済む用途を越えて何かしようとしたら、出来ないと困るだろ

0996◆QZaw55cn4c 2020/07/12(日) 22:14:41.38ID:YoHAyY/u
>>994
世に存在する計算機言語の半分以上は C/C++ で記述されていたりするのです

0997はちみつ餃子 ◆8X2XSCHEME 2020/07/13(月) 02:47:06.70ID:vJz2FqxN
陣取り合戦をしているわけでもなし、
需要が伸びればいいってもんでもない。
重要なのは居場所を見つけるかどうかって話だと思う。

C++ が適切とは言えないけど C++ が比較的マシという理由で C++ が使われている
というのはよくあることで、新しい言語が出現してそういう分野を奪っていくこともある。
もともと C++ がイマイチだったところが消えるだけで、
どんどん衰退して消える運命ってほどのもんではない。

0998デフォルトの名無しさん2020/07/13(月) 06:38:36.94ID:17o/9bhC
そろそろ次のスレッド…このスレッドが終わる前に告知を…。
俺は…ダメだ(がっくし)。

0999デフォルトの名無しさん2020/07/13(月) 07:37:30.49ID:/O+2Yaja
1000なら次スレなし

1000デフォルトの名無しさん2020/07/13(月) 07:53:41.77ID:V+zIL/Eb
のとおり

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 445日 0時間 59分 3秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。