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

レス数が1000を超えています。これ以上書き込みはできません。
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/
2020/06/27(土) 08:15:09.50ID:TsX0h7IG
そもそも>>900が間違ってる
賢者は色々な事から学ぶ
2020/06/27(土) 08:16:30.59ID:TsX0h7IG
学んだ事を盲信せず更新し続ける
2020/06/27(土) 08:18:40.93ID:TsX0h7IG
歴史から学ぶとは要するにパクり
これだけで新技術なんか生まれない
2020/06/27(土) 08:23:27.23ID:wwwZDyDi
文系がプログラミング ば読書だけじゃみにづがね゛
2020/06/27(土) 08:31:20.77ID:4VTCzLtL
>>901の言うようにどっちも大事ってことやな
2020/06/27(土) 08:59:57.53ID:DRe2glKb
つーかこの手の格言て日本語の意訳が過ぎるせいで
元の意味が失なわれてる事がちょいちょいあるけど
この「愚者は経験に・・」もそれで元のビスマルクの文言の意味はまんま >>907 の意味で
要するに「自分の経験のみで考えずに常に他者の経験を見聞きしてそこから学べ」という
意味だった
この他者の経験の集合の事を「歴史」なんつーて壮大な単語に集約しちゃったせいで
なんか「経験論で判断したらあかん、歴史書にあるような高尚な理論を学べ」
みたいな話になっちゃってるっていう
2020/06/27(土) 09:35:19.65ID:TsX0h7IG
ああやっぱり
そんなことだろうと思った

ムーアの法則もそんな感じ
違う意味で使われてしまった例
2020/06/27(土) 09:35:38.13ID:tKkUIu86
>>907
いやいやそれこそまさに"歴史"だろ
2020/06/27(土) 09:35:39.20ID:Fil4ka9J
賢者が歴史「だけ」から学ぶと思ってる>>908-910ってw
2020/06/27(土) 09:44:14.10ID:TsX0h7IG
>>900
愚者は経験を含めた色々な事から学ぶ
なんて文ではないだろ
2020/06/27(土) 09:46:02.66ID:TsX0h7IG
>>900を見て違和感が無いなら
プログラミングに向いてない
2020/06/27(土) 09:52:27.76ID:TsX0h7IG
経験が無い言い訳をするために
偉い人の言葉を変造して使う

経験の無い文系にありがちなこと
2020/06/27(土) 09:54:04.58ID:twDHZDh4
>>913
意訳が悪いというより、金言を字面通りにしか解釈できない奴が増えた(もしくは元から多い)ということが問題なんでないの?
例えば>>917みたいに。

>>900の意味を考えたら、愚者は「自分自身の」経験だけから学ぶのに対し、賢者は歴史というこれまでの多数の人間による経験の積み重ねからも学ぶという対比であることは分かりそうなものなのに、字面通りにしか受け取らない。

だから>>910みたいな頓珍漢なことも言い出す。
新たな技術を産み出すのは過去の積み重ねの上に、それをさらに発展させたり新たな発想などが必要になるだろうけど、この金言は別に学ぶことだけしていろと言う話をしているわけではない。ただ学ぶ対象は広い方が良いという話をしているだけなのに、何でわざわざ>>910のようなことを言い出すのだろう。
2020/06/27(土) 10:01:34.50ID:wwwZDyDi
#include <stdio.history>

const 自動運転車 = require('運転経験');

import 数学史
2020/06/27(土) 10:59:13.05ID:3D9ce/Tt
>>921
言語捏造すんなやゴミが
2020/06/27(土) 11:10:43.60ID:05T2q1jf
>>920
誰が読んでもわかる文章にするべきだろう
小説じゃないんだから
2020/06/27(土) 11:43:34.76ID:iSXUJw2h
>>922
クエっクエっクエっチョコボー〜ル〜
921>gcc a.c
stdio.history: No such file or directory
925デフォルトの名無しさん
垢版 |
2020/06/27(土) 11:46:58.91ID:h6eax6A3
名言・格言・故事成語は枝葉や細部を切り捨てた理想的な空間だろ
その場その場に合わせたすっからカンのいいくるめだ
だから欧州も誰が言ったかに矢鱈と拘る

こういうのはマジで作り話で都合のいいことしか書いてない
虚偽のお話を信じさせられてるんだから虚構と現実のズレが生じる
2020/06/27(土) 11:51:17.17ID:tKkUIu86
>>923
バカ向けに要約するね。

ID:TsX0h7IG は低能
2020/06/27(土) 13:49:21.23ID:TsX0h7IG
愚者は歴史に学ぶ
賢者は経験に学ぶ
928デフォルトの名無しさん
垢版 |
2020/06/27(土) 15:49:00.82ID:QSLeN3Uh
>>921
むしろ
----vc2019.h----
#include <vc2017.h>
----
----vc2017.h----
#include <vc2015.h>
----
----vc2015.h----
#include <vc2013.h>
----
----vc2013.h----
#include <vc2010.h>
----
みたいなものを想像した
2020/07/03(金) 09:37:34.50ID:DB1hQWD+
表紙に一休さんみたいな男が写った専門書を見つけたのだけど、買うのためらった
930デフォルトの名無しさん
垢版 |
2020/07/03(金) 11:41:58.59ID:OljhRJZm
UNIX公案なるものが存在するのでプログラミングを理解するには禅をやるのが早い
GEBでも公案の論理分解が行われてるくらいに当時のアメリカ西海岸では大麻と禅とLSDが流行った
2020/07/03(金) 14:32:59.27ID:/+uSoVK/
>>929
江添亮のC-入門?
https://i.imgur.com/TswaEc3.jpg
2020/07/03(金) 14:47:09.61ID:1r/HjE0m
フッw
933デフォルトの名無しさん
垢版 |
2020/07/03(金) 17:54:47.73ID:6268sYfp
これで安全靴でミリタリー服でうろついてたら職務質問される罠
934デフォルトの名無しさん
垢版 |
2020/07/05(日) 22:48:53.64ID:9WS3R3Fj
江添のやつはわかりにくくない?
2020/07/05(日) 22:58:40.95ID:UizTuhh+
>>934
私は好きです!
while (), do while (), for () をやる前に goto を導入し、「if () と goto があれば何でも出来る!」という潔さ!
936デフォルトの名無しさん
垢版 |
2020/07/05(日) 23:00:31.75ID:9WS3R3Fj
include省略されるとちょっと
937デフォルトの名無しさん
垢版 |
2020/07/06(月) 10:32:47.31ID:tZQ4aODX
include をおまじないと称してすっとばす解説は大抵糞
2020/07/06(月) 13:22:36.24ID:DnB56BCk
そういう解説で勉強したやつは100%コピペマンになり業務では使えない
2020/07/06(月) 14:32:37.87ID:kTgVemk4
大変だなバカって
2020/07/06(月) 14:41:13.52ID:gLHWFzBI
バカは楽だぞ
2020/07/06(月) 16:52:45.31ID:Js6m+wFY
俺はアセンブリから入ったタイプだからよりプリミティブな機能の
組み合わせとして理解するという方法論は結局のところわかりやすいというのはわかる。

でも展開形を意識してしまうようになると抽象化の感覚が育たないような気もしていて、
あらゆる意味で万能ってことはないので色んな本があることが大事なんだと思う。

江添亮のC++入門は継承すら取り扱わないレベルの入門という位置づけなので、
不足する分はより本格的な本を読む前提だろうし、まあこんなもんじゃないの。
2020/07/06(月) 18:43:53.42ID:X9mxW4kC
はちみつって何歳?
943デフォルトの名無しさん
垢版 |
2020/07/06(月) 19:04:52.45ID:Xx+iWxrn
結局どういう順序で勉強していけばいいんだろう
2020/07/06(月) 20:43:39.12ID:SSQMtz9B
>>943
一本道で過不足なく必要な物を順序通りに学べるような都合のいい方法なんてないから、ある程度は分からないものを保留して先に進んでから後戻りして理解したり、逆に順調に進んでると思ったら壁に突き当たって後戻りして不足部分を地固めし直してからまた先に進むなんてこともある。
それが当たり前だと思って最初は苦労するしかないと思うよ。ある程度なれてくれば、経験と勘で補いながら効率が上がっていくはず。
2020/07/06(月) 20:54:22.43ID:fLXZOc4N
二章からポインタの説明が始める入門書で勉強した。今思えば酷いサディスティック教本だったと思う。
タイトルが思い出せない…
2020/07/06(月) 21:27:01.83ID:YRpfyW1U
>>943
独習C++レベル、accelerated C++ レベル → C++98 STL本 レベル → 結城さんのデザパタを C++ に書き直す訓練 →C++11レイターを本格的に → テンプレートマジック本(今ここ) →積読している effective C++ とその兄弟たちはいつか読みたいものだ
2020/07/06(月) 21:41:28.85ID:P5id6Ara
do{...}while(0);
ってどんな気持ちで使うんでしたっけ?
2020/07/06(月) 21:42:15.58ID:P5id6Ara
#define HOGE(FUGA) do{...FUGA...}while(0)
だからdefineが重要なのかしら
2020/07/06(月) 22:03:03.03ID:KpksOV+E
goto否定原理主義者がbreakをgotoの代わりに使う
2020/07/06(月) 22:57:43.86ID:juxBVe1k
アナルに挿入しながら「まだ・・まだ本体には挿入していないっ!
だからこれはセックスではない!」とか言うのと似てるなそれ
2020/07/07(火) 01:49:20.66ID:tzlORGl2
>>945
C/C++ でポインタを避けて説明する (理解を試みる) 方がつらくない?
2020/07/07(火) 07:56:58.77ID:bJbvn87/
>>949-950
「大丈夫、パイプカットしてるから」みたいな感じかも。
break や continue を「去勢されたgoto」って喩えるじゃない。

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

で、コンパイラさんに「常に偽となる条件式です」とか警告されるの。
2020/07/07(火) 12:13:10.64ID:bEGKo5iM
>>951
はい、もちろん。
でもそれが2章でなくてもいいのかな、と。
出鼻くじく気満々やん、みたいな
2020/07/07(火) 13:48:51.21ID:tzlORGl2
>>953
選択肢があることが大事なんだって。

C の理屈だとビットパターンが並んだメモリ空間が広がっていてそこにオブジェクトを配置していくというモデルだから
ポインタを通してそこらを理解させるというのもひとつのやり方としてアリでしょ。
きちんとした理屈を後出しされると「先に言えや!」って気持ちになる人は少なくないと思う。
2020/07/07(火) 19:09:26.79ID:v3ijliVb
ポインターの何がそんなに難しいと感じるのかわからん
コンピューターの処理なんてアドレス操作ばっかりじゃん

コンピューターの仕組みがわかってないからなのかな?
ならば言語学ぶ前にコンピューターの仕組みを学ぶのが先じゃね?
956デフォルトの名無しさん
垢版 |
2020/07/07(火) 19:39:25.64ID:aaXFzUCt
テスト問題にはポインタパズルとでもいうべきゴミみたいな問題が多いからね
わざわざ難しくして間違えるように幾重にも罠を張ったヤツ
そういうのでポインタ嫌いが増える
2020/07/07(火) 21:02:20.63ID:yByKJQAn
サイズ100を100個用意するより
サイズ10000を1個用意してアドレス割り振るとか好き
ポインタ変数分サイズ増えるのは目をつむる確保速度重視
2020/07/07(火) 21:28:33.53ID:7uEBIb8C
>>945
私は ** を使うくらいなら *& の方がマシだと思っているのですが、 *& で書いた本はまったくないですね…
2020/07/07(火) 22:00:58.59ID:tzlORGl2
>>958
何をいいたいのかわかんないのでもうちょっとくやしく
2020/07/07(火) 22:12:29.39ID:TeF3RSyR
あんだけクズをバカにしてたのに、同じエディタを使ってたなんて!
2020/07/07(火) 22:17:27.53ID:4bY8cpqR
>>960
くやしいのうwwwww
2020/07/07(火) 23:10:29.18ID:7uEBIb8C
>>959
https://ideone.com/LnS5rf

>>945
こういうのも、やっぱりサドになりますか…
2020/07/07(火) 23:17:48.32ID:tzlORGl2
>>962
そういうデザインのプログラムがあっても不自然だとは思わないが、
初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元ちゃう?
& という記号の多義性がアレなのが根本原因ではあるんだが……。
2020/07/07(火) 23:21:02.99ID:7uEBIb8C
>>963
>初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元
そうかもしれませんね

>& という記号の多義性がアレなのが根本原因
まあ、そうですよね…
2020/07/08(水) 08:50:17.72ID:sJ2uy93A
>>947-948
同じ人からの連続投稿、ひとつの質問だと気づかなかった。

マクロの実体を do {...} while (0) で囲む定型については
「#define do whole false」でネット検索すると色々出てくる。
この場で説明するには少々分量が多いのだ。
966デフォルトの名無しさん
垢版 |
2020/07/08(水) 09:23:35.50ID:hADFKHgu
そのうち
#define HOGE(FUGA) do{...FUGA...}while(0);
と描いてしまって失敗する
967965
垢版 |
2020/07/08(水) 18:00:01.90ID:sJ2uy93A
あ、もちろん whole は誤り while で検索してくれ。

× 「#define do whole false」
○ 「#define do while false」
2020/07/09(木) 20:13:12.08ID:gJQJWBxs
テキストファイルに文字列を書き込みしたいのですが

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

これだと動いているんですが
最後のendlを無くして"hoge"のみを書き込もうとすると動作しません
どういった理由なんでしょうか?
2020/07/09(木) 20:17:07.59ID:N+YU0rOq
flushしないと
2020/07/09(木) 20:22:54.18ID:2UhyUN9n
読み書きは時間がかかる処理だから、読み書きの前に、小さなデータは一時的にバッファという記憶域にまとめて
貯めておき(まあ、キャッシュと似たようなものだ)、改行などがあれば、押し流す(flush)という処理をする。
この場合はendlがflushの役割をする。
2020/07/09(木) 20:48:42.31ID:gJQJWBxs
>>969 >>970
理解できましたありがとうございます!
2020/07/11(土) 00:06:30.27ID:87hwO6K6
ポインタを初心者に完璧に理解させる方法分かったわ。
ポインタ=ショートカットアイコンと教えればいいんだ。

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

完璧
2020/07/11(土) 00:21:04.14ID:lUabZX1b
ポインタの演算は?
2020/07/11(土) 00:21:34.19ID:nv0BNjEd
その程度の抽象化ならポインタのこと直接説明すればいいと思う
2020/07/11(土) 08:24:16.69ID:sGHMgavQ
住所録とかじゃダメなん?
976デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:03:46.07ID:J0INoyBc
ポインタの躓き処ってそういう場所じゃないから
2020/07/11(土) 11:18:32.94ID:60oNEnIZ
アセンブラから入ると
Cのポインタは色々と意味不明
978デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:20:02.10ID:fm8o+adg
嬉々として大量に出題されるポインタパズルが難易度を無駄に押し上げてる
この時のアドレスは何か、変数は何かと、無駄に凝った問題を作り易いのがポインタの難点

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

しかも大して面白くもなんともない問題が製造される
穴埋めよりも酷いのが
2020/07/11(土) 11:20:10.45ID:Rtii2xnW
レコード針みたいなもんじゃないの
980デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:45:57.83ID:J0INoyBc
自称「教科書」が間違ってたりするからな
そういうミスリードが初心者をさらに混乱させてる
2020/07/11(土) 11:47:30.73ID:60oNEnIZ
初心者用教科書は厳密じゃやくて良いんだよ
2020/07/11(土) 11:49:05.50ID:60oNEnIZ
高校生の教科書に
ニュートン力学は間違ってるとか
幾何光学は間違ってるとか
この世はユークリッド空間ではない
とか書いても混乱するだけ
983デフォルトの名無しさん
垢版 |
2020/07/11(土) 12:12:13.44ID:J0INoyBc
>>981
百歩譲って厳密じゃないのを許すとしても
明らかな間違いは遺憾
2020/07/11(土) 12:23:45.26ID:60oNEnIZ
技術書に明らかな間違い?
2020/07/11(土) 15:56:25.03ID:sGHMgavQ
>>976
具体的にどういう場所なん?
2020/07/11(土) 16:23:26.53ID:60oNEnIZ
& * の多義性
複合型の記述方法
メモリ確保解放
ポインタの型と演算の結果の違い
const, volatile
2020/07/11(土) 20:36:15.52ID:87hwO6K6
わかってさえしまえば簡単至極なのに、これほど初心者に教えるのが難しいこともそうはないなw
配列や関数の戦闘アドレスの渡し方をわかりやすく出来てれば難しいと思えることもなかったかもしれない。
2020/07/11(土) 20:47:57.04ID:kW8apoiX
戦闘アドレスと防御アドレスを使いこなして達人を目指せ!
2020/07/11(土) 20:48:58.21ID:lUabZX1b
>>987
そうか?
2020/07/11(土) 21:29:54.59ID:sGHMgavQ
チートコードはベースアドレスからの距離
ベースアドレスが変わってもチートコードは変わらない
ゲーム好きにはこんな感じか
2020/07/12(日) 08:37:19.13ID:03QLQuvk
vc++でバリアント型って使えますか??
2020/07/12(日) 10:07:58.94ID:bazuV89L
>>991
Boost
993デフォルトの名無しさん
垢版 |
2020/07/12(日) 10:26:26.21ID:NK7E+AG5
pythonのctypes使うときに役に立ってる
ctypes.POINTERとか謎仕様過ぎた
994デフォルトの名無しさん
垢版 |
2020/07/12(日) 21:37:47.68ID:PErY82OB
C++って団塊ジュニアまでの言語って感じがする
これから爆発的に需要が伸びていく可能性なんてないよね?
2020/07/12(日) 21:51:26.17ID:dmFXGwc3
伸びるとかよくわからんが
今時のウェーイってしている言語にしたって、大抵コア部分のライブラリやらランタイムやらはcやc++で書かれているのだから

その言語のお客様で済む用途を越えて何かしようとしたら、出来ないと困るだろ
2020/07/12(日) 22:14:41.38ID:YoHAyY/u
>>994
世に存在する計算機言語の半分以上は C/C++ で記述されていたりするのです
2020/07/13(月) 02:47:06.70ID:vJz2FqxN
陣取り合戦をしているわけでもなし、
需要が伸びればいいってもんでもない。
重要なのは居場所を見つけるかどうかって話だと思う。

C++ が適切とは言えないけど C++ が比較的マシという理由で C++ が使われている
というのはよくあることで、新しい言語が出現してそういう分野を奪っていくこともある。
もともと C++ がイマイチだったところが消えるだけで、
どんどん衰退して消える運命ってほどのもんではない。
2020/07/13(月) 06:38:36.94ID:17o/9bhC
そろそろ次のスレッド…このスレッドが終わる前に告知を…。
俺は…ダメだ(がっくし)。
999デフォルトの名無しさん
垢版 |
2020/07/13(月) 07:37:30.49ID:/O+2Yaja
1000なら次スレなし
1000デフォルトの名無しさん
垢版 |
2020/07/13(月) 07:53:41.77ID:V+zIL/Eb
のとおり
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 445日 0時間 59分 3秒
レス数が1000を超えています。これ以上書き込みはできません。