C言語の設計ミスった危険な関数トップ10決めようぜ (215レス)
C言語の設計ミスった危険な関数トップ10決めようぜ http://mevius.5ch.net/test/read.cgi/tech/1574306624/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
72: デフォルトの名無しさん [sage] 2019/12/15(日) 18:05:59.04 ID:5sPbacoo for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) goto outer; } } outer:; http://mevius.5ch.net/test/read.cgi/tech/1574306624/72
73: デフォルトの名無しさん [sage] 2019/12/15(日) 18:58:38.98 ID:5sPbacoo for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) goto outer; } } printf("complete\n"); outer:; http://mevius.5ch.net/test/read.cgi/tech/1574306624/73
74: デフォルトの名無しさん [sage] 2019/12/15(日) 19:01:19.97 ID:5sPbacoo わざわざ言語拡張しなくても >>57以上の事が実現出来る http://mevius.5ch.net/test/read.cgi/tech/1574306624/74
75: デフォルトの名無しさん [sage] 2019/12/16(月) 09:05:52.89 ID:AI1GDY0I ラベルのスコープを狭くしたいという話のようだから マクロの中で使ってこそ真価を発揮するんじゃないかな。 フル仕様のパースが必要というわけではなく、かなり手抜きできそうではある。 あれば便利というのは否定しないが、C でそこまで必要かというと… http://mevius.5ch.net/test/read.cgi/tech/1574306624/75
76: デフォルトの名無しさん [] 2019/12/16(月) 12:33:03.93 ID:0jmxiGrg { goto hoge; hoge:; } { goto hoge; hoge:; } これで二重になってたら困るしある意味なってなくても困るな http://mevius.5ch.net/test/read.cgi/tech/1574306624/76
77: デフォルトの名無しさん [sage] 2019/12/16(月) 13:21:05.83 ID:ZZ8St2Js マクロで二重以上のループってのもなかなか考えづらいなあ 一応、ラベル名をパラメータとする手もある 使う側のコストを考えるとgotoの為にパラメータを増やさないよな gotoを使わない主義者がよくやってるように 余分な変数を使って実装するんだろうね http://mevius.5ch.net/test/read.cgi/tech/1574306624/77
78: デフォルトの名無しさん [sage] 2019/12/16(月) 13:23:11.26 ID:ZZ8St2Js アセンブラだとマクロローカルラベルってのがあったりする ラベルを頻繁に使うので あと @@/@b/@fのように、 直近のラベルを指定する仕組みもある http://mevius.5ch.net/test/read.cgi/tech/1574306624/78
79: デフォルトの名無しさん [sage] 2019/12/16(月) 13:28:49.41 ID:ZZ8St2Js >>72 >>73 みたいなのって gotoの使いどころだと思うんだけだ gotoを使わない人はどう書いてるの? 特に >>57 の答えを聞いてみたい http://mevius.5ch.net/test/read.cgi/tech/1574306624/79
80: デフォルトの名無しさん [sage] 2019/12/16(月) 15:17:28.75 ID:arH1mwfY void print_data(void) { for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) return; } } } print_data(); printf("complete\n"); http://mevius.5ch.net/test/read.cgi/tech/1574306624/80
81: デフォルトの名無しさん [sage] 2019/12/16(月) 16:34:59.64 ID:/0yHEQmX outer より後に処理が続く場合は? http://mevius.5ch.net/test/read.cgi/tech/1574306624/81
82: デフォルトの名無しさん [sage] 2019/12/16(月) 16:51:44.02 ID:arH1mwfY void print_data(void) { for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) return; } } } print_data(); outer より後に処理が続く場合 printf("complete\n"); http://mevius.5ch.net/test/read.cgi/tech/1574306624/82
83: デフォルトの名無しさん [sage] 2019/12/16(月) 16:55:03.26 ID:arH1mwfY "短い処理"をいちいち関数にしなくて済むから、break 2とかはあってもいいが、 長い処理は関数にしてないとろくにテストできないんだからgotoなんていらない http://mevius.5ch.net/test/read.cgi/tech/1574306624/83
84: デフォルトの名無しさん [sage] 2019/12/16(月) 19:03:13.17 ID:4DgO9d+i じゃあ>>57もいらないね http://mevius.5ch.net/test/read.cgi/tech/1574306624/84
85: デフォルトの名無しさん [sage] 2019/12/16(月) 19:09:09.12 ID:lsrBHsJG gotoの基本的な使い方くらい知っておいた方が良いかと ループを抜ける為だけに関数を分けないといけなくなるし 挙げ句の果てに言語の欠陥とか言い出す http://mevius.5ch.net/test/read.cgi/tech/1574306624/85
86: デフォルトの名無しさん [sage] 2019/12/16(月) 20:06:51.00 ID:3ha1TSe5 今のC言語ではネストしたループから抜けるのはフラグを使うかgotoしかないからたいていgoto使ってるけどgotoなんて野蛮なものはできたら使いたくないから他の言語で実装されてるラベル付きbreakなりレベル付きbreakが欲しいって話だろ 今更gotoの基本的な使い方ガーとか言ってる奴はどんだけ低レベルなんだよw http://mevius.5ch.net/test/read.cgi/tech/1574306624/86
87: デフォルトの名無しさん [sage] 2019/12/16(月) 20:09:28.82 ID:xr9KOlE0 あれ? returnで抜ける為に関数に分けるんじゃなかったの? http://mevius.5ch.net/test/read.cgi/tech/1574306624/87
88: デフォルトの名無しさん [sage] 2019/12/16(月) 20:21:09.65 ID:xr9KOlE0 gotoは野蛮とかいう歪んだ教育のせいで わざわざ変数を定義したりわざわざ関数を分けたりして わざわざ見にくいコードにしちゃう 生でポインタを扱う野蛮なC言語なんか使わないで 上品な言語を使った方が良いよ http://mevius.5ch.net/test/read.cgi/tech/1574306624/88
89: デフォルトの名無しさん [sage] 2019/12/16(月) 20:28:02.60 ID:jL52ryYk gotoじゃなくてgodowntoなら誰も文句言わなかった http://mevius.5ch.net/test/read.cgi/tech/1574306624/89
90: デフォルトの名無しさん [sage] 2019/12/16(月) 20:47:58.36 ID:LjjtFzBx 自分は小規模な字句解析みたいなのでもgoto使うことがある。 ラベルで状態を表してgotoで遷移する。 goto使わなかったら状態を変数に入れて、 ループの中でswitchで場合分けするようなコードになって辛い。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/90
91: デフォルトの名無しさん [sage] 2019/12/16(月) 20:52:55.59 ID:DbnQVwfE ループの中のswitchでループを抜けるのに gotoを使うんじゃ? http://mevius.5ch.net/test/read.cgi/tech/1574306624/91
92: デフォルトの名無しさん [sage] 2019/12/16(月) 21:41:34.22 ID:wRV+mRkt 次の状態を返す関数ポインタでループすればいんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1574306624/92
93: デフォルトの名無しさん [sage] 2019/12/16(月) 21:45:33.24 ID:jhycq5nX そんな野蛮なことはしません http://mevius.5ch.net/test/read.cgi/tech/1574306624/93
94: デフォルトの名無しさん [sage] 2019/12/16(月) 22:12:14.62 ID:arH1mwfY >>87 returnで抜けるためというか、 1. gotoで抜けたい 2. 関数にするか 3. あ、そもそもコードが複雑なんだな 4. 関数にして正解だった こんな感じかな。 gotoで抜けたいと思う=コードが複雑になってるという警鐘だと思ってる。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/94
95: デフォルトの名無しさん [sage] 2019/12/16(月) 22:22:18.57 ID:xr9KOlE0 で>>82みたいな意味不明な関数の分け方をすると >>57は、より複雑な記述をしたいっていう主張だし gotoに親を殺された人の言うことは支離滅裂 理由が後付けだからそうなる http://mevius.5ch.net/test/read.cgi/tech/1574306624/95
96: デフォルトの名無しさん [sage] 2019/12/16(月) 22:27:34.28 ID:arH1mwfY > で>>82みたいな意味不明な関数の分け方をすると なんで意味不明? そもそもその処理に意味をもたせてから言おうよw 処理に意味をもたせると、関数にしたほうが良いと思うからさ http://mevius.5ch.net/test/read.cgi/tech/1574306624/96
97: デフォルトの名無しさん [sage] 2019/12/16(月) 22:32:01.57 ID:arH1mwfY > 理由が後付けだからそうなる 質問の方が先なのに、理由を先に言えるわけがないw Q. 多重ループから抜けるのに、gotoは必要ですか? A. 必要ありません。多重ループが必要になるぐらい複雑なら関数にしますから これが普通だから、後付にはならないよね。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/97
98: デフォルトの名無しさん [sage] 2019/12/16(月) 22:37:09.13 ID:xr9KOlE0 じゃ>>57も当然不要ですね http://mevius.5ch.net/test/read.cgi/tech/1574306624/98
99: デフォルトの名無しさん [sage] 2019/12/16(月) 22:38:17.80 ID:arH1mwfY そんなにくり返し言わなくても、最初から不要だしw http://mevius.5ch.net/test/read.cgi/tech/1574306624/99
100: デフォルトの名無しさん [sage] 2019/12/16(月) 22:39:57.37 ID:xr9KOlE0 じゃあ>>57はどういうつもりで書いたんでしょうかね? http://mevius.5ch.net/test/read.cgi/tech/1574306624/100
101: デフォルトの名無しさん [sage] 2019/12/16(月) 22:40:50.59 ID:LjjtFzBx gogoサイコーっす http://mevius.5ch.net/test/read.cgi/tech/1574306624/101
102: デフォルトの名無しさん [sage] 2019/12/16(月) 22:41:03.68 ID:LjjtFzBx 間違えたw goto http://mevius.5ch.net/test/read.cgi/tech/1574306624/102
103: デフォルトの名無しさん [sage] 2019/12/16(月) 22:42:13.32 ID:xr9KOlE0 話を戻して ・ループを抜けた後に関数の後処理が必要な場合 ・ループを抜けた後にローカル変数を使った処理をする場合 ・他、意味的に関数内で処理したい場合 はどうするの? http://mevius.5ch.net/test/read.cgi/tech/1574306624/103
104: デフォルトの名無しさん [sage] 2019/12/16(月) 22:44:03.17 ID:arH1mwfY > ・ループを抜けた後に関数の後処理が必要な場合 前処理を関数の中でするな > ・ループを抜けた後に関数の後処理が必要な場合 戻り値を返せ >・他、意味的に関数内で処理したい場合 自分で具体例が思いつかないなら出すな http://mevius.5ch.net/test/read.cgi/tech/1574306624/104
105: デフォルトの名無しさん [sage] 2019/12/16(月) 22:45:01.13 ID:arH1mwfY コピペミスったな >・ループを抜けた後にローカル変数を使った処理をする場合 戻り値を返せ http://mevius.5ch.net/test/read.cgi/tech/1574306624/105
106: デフォルトの名無しさん [sage] 2019/12/16(月) 22:48:10.00 ID:xr9KOlE0 >>104 なぜ? http://mevius.5ch.net/test/read.cgi/tech/1574306624/106
107: デフォルトの名無しさん [sage] 2019/12/16(月) 22:52:22.49 ID:arH1mwfY >>106 なにが? ってか、もう少し具体例を書けよ。 それみれば設計がおかしいという結論になる 例えて言うなら、パーサーの処理の中でネットワークにアクセスしたい時困るから ネットワークモジュールはグローバルにアクセスできるようにしておくべき みたいなことを言ってるようなもんだよ。それは設計がおかしい。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/107
108: デフォルトの名無しさん [sage] 2019/12/16(月) 22:54:10.44 ID:xr9KOlE0 int func(int n){ ロック ループ アンロック return 結果; } http://mevius.5ch.net/test/read.cgi/tech/1574306624/108
109: デフォルトの名無しさん [sage] 2019/12/16(月) 22:55:55.89 ID:xr9KOlE0 int func(int n){ ループ 値を加工 return 値 } http://mevius.5ch.net/test/read.cgi/tech/1574306624/109
110: デフォルトの名無しさん [sage] 2019/12/16(月) 22:58:13.41 ID:arH1mwfY >>108 「ループ」という言い方がおかしい。 ループで「実装」しているのであって やっているのはなにかの「処理」だろう? int func(int n){ ロック 処理 アンロック return 結果; } 「処理」という名前をつけたくなるならば、 そこは独立した関数にするべきだろう http://mevius.5ch.net/test/read.cgi/tech/1574306624/110
111: デフォルトの名無しさん [sage] 2019/12/16(月) 23:02:27.04 ID:xr9KOlE0 double sigma(const double *a){ ループで総和と2乗和と数を計算 標準偏差を計算 return 標準偏差 } http://mevius.5ch.net/test/read.cgi/tech/1574306624/111
112: デフォルトの名無しさん [sage] 2019/12/16(月) 23:04:47.03 ID:xr9KOlE0 int func(int n){ int a[10] = {0}; ループ aから値を計算 return 値 } http://mevius.5ch.net/test/read.cgi/tech/1574306624/112
113: デフォルトの名無しさん [sage] 2019/12/16(月) 23:06:46.75 ID:xr9KOlE0 いくらでも思い浮かぶ http://mevius.5ch.net/test/read.cgi/tech/1574306624/113
114: デフォルトの名無しさん [sage] 2019/12/16(月) 23:07:37.81 ID:LjjtFzBx 全部関数に分けろって言われて終わりそう http://mevius.5ch.net/test/read.cgi/tech/1574306624/114
115: デフォルトの名無しさん [sage] 2019/12/16(月) 23:09:19.22 ID:xr9KOlE0 分ける理由がない http://mevius.5ch.net/test/read.cgi/tech/1574306624/115
116: デフォルトの名無しさん [sage] 2019/12/16(月) 23:10:06.65 ID:xr9KOlE0 >>112を分けてみて http://mevius.5ch.net/test/read.cgi/tech/1574306624/116
117: デフォルトの名無しさん [sage] 2019/12/16(月) 23:17:03.74 ID:xr9KOlE0 関数分けってのは意味、機能、汎用性、...で分けるべきであって 単にループを抜けるのにreturnを使いたいから分けるとかを考えるべきじゃない http://mevius.5ch.net/test/read.cgi/tech/1574306624/117
118: デフォルトの名無しさん [sage] 2019/12/16(月) 23:23:11.90 ID:xr9KOlE0 素直にgotoの使い方を覚えた方が良いよ 意地はってないで http://mevius.5ch.net/test/read.cgi/tech/1574306624/118
119: デフォルトの名無しさん [sage] 2019/12/16(月) 23:42:01.03 ID:arH1mwfY >>118 だから意味とか汎用性とかで分けると 自然にループに抜けるときにreturnを使えば良くなるんだよ http://mevius.5ch.net/test/read.cgi/tech/1574306624/119
120: デフォルトの名無しさん [sage] 2019/12/16(月) 23:45:51.39 ID:jL52ryYk gotoでもreturnでも読めれば良い 但し1関数50行以上は読めないんで宜しく http://mevius.5ch.net/test/read.cgi/tech/1574306624/120
121: デフォルトの名無しさん [sage] 2019/12/16(月) 23:48:10.14 ID:arH1mwfY >>112 だから「ループ」と書くなっちゅうねんw 関数を設計するならこんな感じやろ? int func(int n){ int a[10] = {0}; memset_random(a, sizeof(a)); // a配列をランダムな値で埋める int chksum = chksum(a, sizeof(a)); // a配列のチェックサムを計算 return 値 } 関数の中でループしてようが何して用が関係ないわ http://mevius.5ch.net/test/read.cgi/tech/1574306624/121
122: デフォルトの名無しさん [sage] 2019/12/16(月) 23:55:19.85 ID:xr9KOlE0 sizeof(a) とか書くレベルの相手してたのか アホらしい http://mevius.5ch.net/test/read.cgi/tech/1574306624/122
123: デフォルトの名無しさん [sage] 2019/12/17(火) 00:04:36.92 ID:JvBVW/sd >>119 じゃあ普通のbreakもいらないね まさか使ってないよね http://mevius.5ch.net/test/read.cgi/tech/1574306624/123
124: デフォルトの名無しさん [sage] 2019/12/17(火) 06:41:54.53 ID:YMIUnRyv まあgotoあればbreakは要らんわなw そんな言語は使いたくないけど http://mevius.5ch.net/test/read.cgi/tech/1574306624/124
125: デフォルトの名無しさん [sage] 2019/12/17(火) 07:00:38.11 ID:JvBVW/sd gotoもbreakもいらないって http://mevius.5ch.net/test/read.cgi/tech/1574306624/125
126: デフォルトの名無しさん [sage] 2019/12/17(火) 07:10:23.36 ID:JvBVW/sd gotoもbreakも無い ループを抜けるときはreturn switchを抜ける時もreturm 関数は単一の処理しか出来ない こんな言語はイヤだね http://mevius.5ch.net/test/read.cgi/tech/1574306624/126
127: デフォルトの名無しさん [sage] 2019/12/17(火) 07:23:38.89 ID:JvBVW/sd 後に退けなくなったアホの作る言語 http://mevius.5ch.net/test/read.cgi/tech/1574306624/127
128: デフォルトの名無しさん [sage] 2019/12/17(火) 07:39:52.35 ID:odSFZTU+ gotoの使い方 http://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03005.html http://www9.plala.or.jp/sgwr-t/c/sec06-6.html http://tomeapp.jp/archives/1029 http://opencv.jp/opencv-2svn/c/core_utility_and_system_functions_and_macros.html http://mevius.5ch.net/test/read.cgi/tech/1574306624/128
129: デフォルトの名無しさん [sage] 2019/12/17(火) 08:49:57.51 ID:QeraReD1 たとえ相手がアホであっても、しつこく絡むのもまたアホだと思うんだが… http://mevius.5ch.net/test/read.cgi/tech/1574306624/129
130: デフォルトの名無しさん [sage] 2019/12/17(火) 12:33:06.04 ID:vDeQfs2U 自分より下の人間を叩くしか能がないんだろ ID:arH1mwfYなんてスルーでいいと思うんだがそれしか叩けないからいつまでたっても終わらないw http://mevius.5ch.net/test/read.cgi/tech/1574306624/130
131: デフォルトの名無しさん [sage] 2019/12/17(火) 13:15:29.02 ID:GBggCGQK 雑談スレだしネタも無いから良いんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1574306624/131
132: デフォルトの名無しさん [sage] 2019/12/17(火) 18:32:11.83 ID:x9hYOthl String型が無いって死ぬほど不便なんだが http://mevius.5ch.net/test/read.cgi/tech/1574306624/132
133: デフォルトの名無しさん [sage] 2019/12/17(火) 19:06:56.22 ID:p6v4J1KY 他の言語を使ってください http://mevius.5ch.net/test/read.cgi/tech/1574306624/133
134: デフォルトの名無しさん [sage] 2019/12/17(火) 19:18:33.78 ID:6LhBKKEf >>132 自分で似たようなものを作ればいいだろ。汎用的なものがあっても使い勝手や性能で何かしら不満が出るのだから、自分の要求に合致するものを自分で作りな。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/134
135: デフォルトの名無しさん [sage] 2019/12/17(火) 20:52:31.46 ID:QeraReD1 特定の用途においてローカルラベルが役に立つことも無くはないかもしれないな。 自分でそれをやるかどうかは別にして。 いずれにせよ、gcc では式の中で変数を宣言できるのだから ローカルラベルが可能になっても驚かないよ。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/135
136: 132 [sage] 2019/12/18(水) 23:56:34.28 ID:9RDvo6To typedefを使用 https://pastebin.com/iX2DDpRA http://mevius.5ch.net/test/read.cgi/tech/1574306624/136
137: デフォルトの名無しさん [] 2019/12/19(木) 00:12:48.48 ID:vqVcyk4J PHPはbreakにネスト数指定できるよな http://mevius.5ch.net/test/read.cgi/tech/1574306624/137
138: デフォルトの名無しさん [sage] 2019/12/19(木) 09:03:44.36 ID:vjQjJ4nK C言語の開発者によるgoto文の使い方を対象とした実証研究の結果、「goto文は無害だと考えられる」 https://developers.srad.jp/story/15/02/14/2017207/ http://mevius.5ch.net/test/read.cgi/tech/1574306624/138
139: デフォルトの名無しさん [sage] 2019/12/19(木) 16:51:03.60 ID:86m15ms9 longjmp についても調査してほしいな。 特に例は挙げないが、誰もが使っているようなプログラムでも結構使われてる。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/139
140: デフォルトの名無しさん [] 2019/12/19(木) 16:57:20.13 ID:+cpLTGtZ static http://mevius.5ch.net/test/read.cgi/tech/1574306624/140
141: デフォルトの名無しさん [sage] 2019/12/25(水) 01:15:13.49 ID:k3ZI/Zl3 >>139 それは代わりがない。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/141
142: デフォルトの名無しさん [sage] 2020/07/09(木) 10:18:18.26 ID:tNMImStE >>7 大発明なんbだけどな、 リスクも大きい http://mevius.5ch.net/test/read.cgi/tech/1574306624/142
143: デフォルトの名無しさん [] 2020/07/09(木) 10:22:15.80 ID:vrNDocOm 発明って言うか当時はそれが普通だったろ http://mevius.5ch.net/test/read.cgi/tech/1574306624/143
144: デフォルトの名無しさん [sage] 2020/07/09(木) 10:51:31.74 ID:I92CxMlL longjmpは「設計上のミス」ではないんでは。 むしろそういう動作をする目的で設計・導入されたように思えるけど (longjmpに関するRationaleを読んでないので当てずっぽうw) http://mevius.5ch.net/test/read.cgi/tech/1574306624/144
145: デフォルトの名無しさん [sage] 2020/07/09(木) 16:31:13.77 ID:KHuqFwsC >>5 エスティーアールトゥーケー http://mevius.5ch.net/test/read.cgi/tech/1574306624/145
146: デフォルトの名無しさん [sage] 2020/07/09(木) 21:58:30.04 ID:Zo8nB2NL 例外は setjump、longjumpて実装されてるんじゃないのかな? 違うのかな? http://mevius.5ch.net/test/read.cgi/tech/1574306624/146
147: デフォルトの名無しさん [sage] 2020/07/10(金) 22:03:48.37 ID:AfLodKTd >>143 普通じゃない 当時はPascalの文字数+文字列が普通 http://mevius.5ch.net/test/read.cgi/tech/1574306624/147
148: デフォルトの名無しさん [] 2020/07/10(金) 22:26:03.98 ID:U1HXCT7S returnが1変数しか対応していないこと。 ポインター祭りになって可読性がウンコになる http://mevius.5ch.net/test/read.cgi/tech/1574306624/148
149: デフォルトの名無しさん [sage] 2020/07/10(金) 23:11:39.81 ID:7RoGj1wV >>148 可読性がうんこなのはお前の能力が足りないから http://mevius.5ch.net/test/read.cgi/tech/1574306624/149
150: デフォルトの名無しさん [] 2020/07/11(土) 00:22:05.38 ID:UdJEarb2 いろんな言語たらい回しにされるって不幸だよね。 こういうノーガキ垂れる奴がウチの職場にいなくて良かった〜ヽ(´▽`)/ http://mevius.5ch.net/test/read.cgi/tech/1574306624/150
151: デフォルトの名無しさん [] 2020/07/11(土) 10:50:20.85 ID:J0INoyBc >>147 OSのAPIは文字数じゃなくて 文字列byte列+デリミタ'$' みたいなのが多かったぞ http://mevius.5ch.net/test/read.cgi/tech/1574306624/151
152: デフォルトの名無しさん [sage] 2020/07/11(土) 12:01:47.31 ID:2M7rjl8q >>151 それはCP/Mの文字列出力がそうなっていただけ 入力はC言語のfgets()なんかみたいにデリミタの '$' を付加したりしないよ http://mevius.5ch.net/test/read.cgi/tech/1574306624/152
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 63 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s