1 名前:デフォルトの名無しさん mailto:sage [2022/08/04(木) 23:32:27.83 ID:yWVViPyIM.net] !extend:checked:vvvvv:1000:512 (新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C17 www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C2x ドラフト www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ ※前スレ C言語なら俺に聞け 158 https://mevius.5ch.net/test/read.cgi/tech/1640401906/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
159 名前:はちみつ餃子 mailto:sage [2022/09/08(木) 10:30:42.77 ID:MG9wnc1h0.net] >>148 主旨とはずれるが…… 下線で始まる識別子はファイルスコープで予約されている。 下線で始まって大文字が続く識別子は常に予約されている。 予約されている識別子についてなんらかの宣言・定義した結果は未定義。 入門用の解説でやってることもよくあるけど真似しちゃ駄目。 構造体タグは使わないなら省略してしまったほうがよいと思う。
160 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:34:35.91 ID:0dKPxAYF0.net] >>150 >>155 ありがとう!すっきりした
161 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:35:11.25 ID:0dKPxAYF0.net] >>150 →>>151 ね
162 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 23:34:00.51 ID:QimgDhZ1M.net] >>148 解決したのか知らんけど、freadが必ずBUFSIZE分読み込むとは限らんぞ なので、直後のforループはnreadまでにしないとゴミを処理してしまう
163 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 00:38:56.32 ID:eFldOldK0.net] >>159 ありがとう。まだ未解決。格闘中。 なんとかそこには気づいたんですが、どうすればeofまでの分読み込ませればいいかわからず、 結局1バイトづつ読み込ませるしかないのかと思ってましたが、nread分読み込ませればいいのか。 ただ、最終行以外もゴミデータが紛れ込んでいるようなのでそこの原因がなんなのか。
164 名前:148 mailto:sage [2022/09/09(金) 01:45:37.54 ID:eFldOldK0.net] 読み込むデータによってゴミデータが入ったり入らなかったりすることがわかった。 すごい厄介なバグだわ。某所から2進数表示する関数パクッて全部表示させてみると ある特定の箇所でスタックデータが0b11111....に初期化されているみたい。 https://ideone.com/HRogms 読み込みデータはこのプログラム”base64s.c”だとこの現象がでる。 何がまずいのかな。
165 名前:148 mailto:sage [2022/09/09(金) 01:56:18.41 ID:eFldOldK0.net] わかった。日本語部分が処理できてなかったことが原因だ。 vscodeでWindows、clangでコンパイルしているんだけど、freadで単純に読み込んで 出力すると日本語部分が文字化けしてしまうのはなぜ?
166 名前:148 mailto:sage [2022/09/09(金) 01:57:45.15 ID:eFldOldK0.net] 1バイトで読み込んでるから2バイト文字がうまく読み込めないということかな?
167 名前:148 mailto:sage [2022/09/09(金) 02:04:19.38 ID:eFldOldK0.net] 1バイトづつバイナリデータを読み込みしたかったので、fread(buf,...)の bufは char buf[BUFSIZE]; で宣言したのですがここが2バイト文字のバイナリ読み込むときにまずいんでしょうか。 単純に自分自身のコードを読み込んで標準出力に書き込むと文字化けする。 https://ideone.com/GvpcAm 010111....のビット列を単純に書き込んでいるという理解だったのですが、 そういうわけではないんですかね?
168 名前:デフォルトの名無しさん [2022/09/09(金) 02:19:22.29 ID:V/M3y8c30.net] >>153 が正しい size_t stack = (size_t)(unsigned char)c;
169 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 02:52:44.78 ID:eFldOldK0.net] >>165 スタックデータが11111・・・に初期化されるという問題は直りました。 charだと11111111の取り扱いまずいんですね。 char 0~255 の値を格納できるという素朴な理解で使ってたんですが、 unsigned char と char ってどう違うのか、ざっと調べたんですけどよくわかんないですね・・・。
170 名前:148 mailto:sage [2022/09/09(金) 02:53:47.99 ID:eFldOldK0.net] >>153 読み返してみると鮮やかですね。昨日の段階では何のことやら?って感じでしたが。 ありがとうございます。
171 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 03:37:48.54 ID:JkEyHRIQ0.net] >>166 >unsigned char と char ってどう違うのか unsigned charは符号なしで値域は 0 ~ 255 signed charは符号ありで値域は -128 ~ 127 charは処理系依存でsignedかもしれないしunsignedかもしれない 他の整数型にキャストしたり比較したりする時は特に注意が必要
172 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 06:49:36.79 ID:Cx7xgzBv0.net] >>168 char は 8bit とは限らん、というのは置いといて > charは処理系依存でsignedかもしれないしunsignedかもしれない charはsigned charやunsigned charとは違う型だよ https://www.jpcert.or.jp/sc-rules/c-str04-c.html
173 名前:デフォルトの名無しさん [2022/09/09(金) 10:32:00.65 ID:PQbAFFlG0.net] 数値と文字コードの認識の違いはどこらへんに出てくるのでしょうか?
174 名前:デフォルトの名無しさん [2022/09/09(金) 16:58:25.15 ID:ZqL3j+SP0.net] 環境依存によるとこが多すぎて、その都度環境に応じて調べるしかない プログラム全般に言える事
175 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 20:26:03.68 ID:wh55t5+tM.net] 文字はutf-8でも一文字が数バイト必要な事があるので、charはもはや要らない子と言える バイト列を使いたければuint8_tを使って、ちゃんと文字として扱うなら、wchar_tとかchar32_tを使うべきだろうね
176 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 20:34:47.77 ID:AfgZ2PrAM.net] なお中国や日本、韓国などに限る
177 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 21:21:58.31 ID:CwUslwUl0.net] wchar_tこそ要らない子やん お前一体何バイトなんだよ
178 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:02:27.43 ID:JkEyHRIQ0.net] >>169 >char は 8bit とは限らん、 うん、その指摘はされると思ってた。 >charはsigned charやunsigned charとは違う型だよ なるほど、その認識はなかったは。
179 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:22:11.84 ID:qKP12tcq0.net] 自分はvb→C言語→機械語だけど 機械語知らないとダメだよなって思ったわ 大体CPUの仕様と合わせるんだよな 8bitも昔のCPUの慣習出しさ だからプレステのCPU大好きとかライゼンサイコー、いやいややはりインテルだろう なんて言う自作オタがやり始めるとかなり速いんだよな 自作PCの構造はCPUの中身に似てるから
180 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 00:37:03.60 ID:d6i83HiwM.net] >>174 Windowsだと2byteでLinuxだと4byteだな しかしバイト数を気にしてはいけない 気にしなければ可搬性のあるコードを書ける
181 名前:148 mailto:sage [2022/09/10(土) 02:16:33.70 ID:bSy2C3T30.net] 文字化けのところは手に負えないですが、おかげさまでbase64エンコーディングプログラムが完成しました。 ここで言われたことは全部含めてみました。 構造体のタグ、enum型、charじゃなくてuint8_t、終端処理など。 https://ideone.com/7wolLZ コードが汚いなど直すところありましたらどしどしご意見ください。 とりあえず、最初に使ってみる言語はbase64エンコーディングプログラムを組んでみて なれてみようという方針なので。 次はVBAで組んでみるか、sha256プログラムをC言語で組んでみようか考えてます。
182 名前:デフォルトの名無しさん (ワッチョイ adc2-+Wio) mailto:sage [[ここ壊れてます] .net] struct tmって、冗長な設計になってるよね たとえば tm_mon == 1 && tm_mday == 1 なら tm_yday == 0 のはずだけど tm_yday >= 1 にもなれる こういう矛盾がある場合の扱いって規格票のどっかに書いてあったっけ?
183 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:26:36.00 ID:Y1sYJFelM.net] たとえば規格書のmktimeにはカレンダー時間で表現できなければ-1を返すって書いてあるかそう実装するのが正しそうだけども
184 名前:はちみつ餃子 mailto:sage [2022/09/11(日) 14:31:15.93 ID:D/VbhUuk0.net] >>180 tm_yday は無視するとも書いてあるぞ。
185 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:32:58.51 ID:LP1WepGR0.net] レス㌧x カレンダー時間で表現できるか否かということは tm_year, tm_mon, tm_mdayのことで、tm_ydayには該当しない議論だよね 逆にtm_ydayに合わせるように補正はしないとなると ここに優先順位があるのかな
186 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:34:54.92 ID:LP1WepGR0.net] すまん、ちょっと外出する 夜には戻る
187 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:37:22.22 ID:Y1sYJFelM.net] あらほんとだ。戻り値の説明しか見てなかったわ
188 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 15:00:19.15 ID:hGIJSvzu0.net] >>182 そもそもtm_wdayとtm_ydayは更新されるって書いてあるし 関係ないけど ・tm_mday: 1 から 31 の範囲の日付。 ・tm_mon: 1 月からの月数 (0 から 11 の範囲)。 なのは毎回もやるわ、なぜ両方0スタートじゃないのか...
189 名前:はちみつ餃子 mailto:sage [2022/09/11(日) 15:04:45.97 ID:D/VbhUuk0.net] >>185 月は (英語では) 月の名前に置き換える (配列から名前を引く) という都合から自然にそうなったという説は聞いたことがあるな。 日は番号をそのまま表示するもんだから最初から番号通りのほうが都合がいいし。
190 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 17:53:22.84 ID:gNCVLuZy0.net] ローカル変数の宣言で、宣言しようとしているポインタの初期化子に、同じ文で 宣言された変数を参照するのは規格上OKですか? /* test1.c */ 1 | int main(int argc, char **argv) 2 | { 3 | char s[100] = {'A'}, *p = s; 4 | int i = 10, *a[10] = {&i}; 5 | return 0; 6 | } 最新の gcc で試したところ、-std=c89 -pedantic の場合に下記の警告が出ます。 特に3行目が OK で、4行目が駄目な理由がよく分からないです。 どちらもスタック上の相対位置はコンパイル時に決まると思うのですが。 Cの文法について詳しい方、教えてください。 gcc --version gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-1) gcc -O0 -std=c89 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c test1.c: In function ‘main’: test1.c:4:27: warning: initializer element is not computable at load time [-Wpedantic] 4 | int i = 10, *a[10] = {&i}; | ^ gcc -O0 -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c 警告なし
191 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 20:06:58.44 ID:C6syfEgyd.net] C99より前は集成体(配列、構造体)に対する初期化子定数式(アドレス定数式)でスタックは認められていないっぽい 3行目の初期化対象は配列じゃないでしょ
192 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 06:50:50.62 ID:jyhWPRLZ0.net] int main(void) { int a = a; } これもOKなんだが
193 名前:デフォルトの名無しさん (スッププ Sd0a-39XR) mailto:sage [[ここ壊れてます] .net] >>189 スタック上のアドレスを使ってポインタを初期化できるかって話だろ
194 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 19:31:34.25 ID:alBs0lLWd.net] >>187 {&i}だけだったら初期化は簡単だけど その書き方だと本来{&i,&グローバル変数,NULL...}などと書けるのでそうなると特殊な初期化が必要になるんじゃないかな
195 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 19:59:25.14 ID:u2ZYVkG20.net] 一見 スタックに実体をもつ配列の先頭はセーフで (3行目) スタックに実体をもつ変数のポインタはアウトというふうに見えるけど (4行目) { } の中か否かの差もあるんやね
196 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 00:57:57.08 ID:GfZyyjDu0.net] >>190 そんなん言い出したら自動変数をポインタで指せるのかさえ怪しくなってくるな
197 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 12:49:57.03 ID:fh691Hyrd.net] スコープ内でアドレスが参照されたならば 自動変数はレジスタ変数にはならなくなる 「自動」の意味
198 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 19:52:14.52 ID:fgoWI+8da.net] win10(以下win) strawberry perl入れた時一緒にいれたgcc wsl ubuntu22.04 gcc どっかでみた配列関係のサンプルで (間違えるとnull見つかるまで一生探し続けるよ的なコード) で試したら winで値がおかしい linuxで正しい とりあえずwin側でgdbで見ると winで格納アドレスが逆順になってました 例えばコード上で array1うんたら array2かんたら とあって array2がアドレス100番台 array がアドレス200番台 みたいになってました この挙動は環境依存なのかバグなのか知りたいです まぁ結局両方windowsなんですが
199 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 19:56:51.12 ID:ZRyqS0700.net] ネットワークオーダーとかエンディアンとかが絡んでる可能性はあるけど、コードを見ないとなんとも
200 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:03:08.34 ID:PxOaZq6Kd.net] >>195 抽象的すぎて全然わからんw
201 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:04:45.56 ID:fgoWI+8da.net] コードは https://www.delftstack.com/ja/howto/c/length-of-char-array-in-c/ 手入力でミスってたらごめんなさい
202 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:08:18.29 ID:fgoWI+8da.net] 因みにこっちのwin環境だと 上サイトで24byteになるはずの所が10byteになります
203 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:22:45.77 ID:ZRyqS0700.net] strlenのことか? 文字列と違ってchar配列の末尾には自動的にnull挿入されたりしないから、nullまで数え上げるstrlenが何を返すかわからないし、環境によってはメモリアクセス違反で落ちるかも
204 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:26:08.77 ID:fgoWI+8da.net] いや多分違います アドレスが逆 多分ここが重要なんですがその原因が と言うところです
205 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:44:25.86 ID:LY5v/fLv0.net] 環境依存です ゼロで終端されていないものにstrlenを呼んではいけません そのコードが誤り
206 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:51:16.94 ID:I+4Vfslra.net] うーん そう言うことじゃなくて・・・ なんでメモリアドレスの格納が逆になるの? と言うところです cの規格的な話じゃなくてですね・・・
207 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:58:26.77 ID:LY5v/fLv0.net] そのページを作った人の環境(コンパイラとバージョン)ではarr,arr2の順で あなたの環境ではarr2,arrの順なんでしょ たまたまそうなっただけです
208 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:10:35.35 ID:I+4Vfslra.net] 文系脳で行き着く先っていつもそうなんですよね でも残念ながら「それ」がないんですよ この世界 たまたま なんかわかんないけど 偶然 楽しけりゃいいじゃん なんで生きてるのお前? 馬鹿は嫌い 回線で首でも吊ってろカスが ジパング馬鹿しかいないからもう寝る
209 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:15:00.75 ID:W7nqA9Zmd.net] オタクくん怒って寝ちゃったw
210 名前:デフォルトの名無しさん [2022/09/17(土) 21:44:56.47 ID:njcq0eeLa.net] スタックはアドレス高位から低位の方向に積まれることが多いから、arr2のアドレスがarrのそれより小さくなるとかですかね
211 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:46:48.25 ID:aOSn8JHC0.net] そういう人を落とし込める記述はやめよう
212 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 23:27:39.41 ID:eA0eWCp60.net] スタックの方向などは環境依存だろ 環境依存は他にも、little/big endian とか、 char が、0〜255, -128〜127 のどちらなのかとか 文字コードが、BOM 無しUTF-8 以外とか
213 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 01:46:10.06 ID:3xNGEVex0.net] gdbの使い方、ここで質問してもいいですか?
214 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:19:18.49 ID:OVhdQ/fk0.net] >>210 大きく言語自体から脱線するようだとあまりよくないかなと思うけど、 ささいなことなら多少は良かろうと思うし、程度次第じゃね。
215 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:40:43.36 ID:3nFqfKLUH.net] >>209 UTF-8 に BOM は本質的に不要です なぜならば BOM = Byte Order Mark ですが、UTF にバイトオーダーなど存在しません BOM なし、と断ること自体、頭が悪い証拠を如実に表出していると愚考させていただきます 馬鹿は死ね
216 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:43:34.57 ID:Z+lYrLLqa.net] はじめてのC言語完全入門!【Hello World〜ポインタまで徹底解説】 91,121 回視聴 freeCodeチャンネル
217 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 03:28:52.56 ID:OVhdQ/fk0.net] >>212 BOM はエンコード方式の識別に使われる場合もあると公式 (unicode consortium) の資料に書かれている。 BOM が BOM という名前である以上は本来の用途からの転用ではあるが、 バイトオーダーだけを根拠にして不要と断じるのはエンジニアリング的に良い姿勢ではないな。
218 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 04:26:41.31 ID:GkyrVNWr0.net] >>212 いい大人がバカとか4ねとか言ってるの見ると悲しくなってくるわ 人付き合いをろくにしてこなかった精神的にガキのおっさん痛すぎる
219 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 05:15:19.35 ID:fdsnSmbGd.net] >>205 めちゃくちゃだよアンタw 文系ポエムは他でやんなさい
220 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 05:26:48.38 ID:fdsnSmbGd.net] >>205 よく見るとそのページ内容がむちゃくちゃだなw データが格納される順番はコンパイラ依存なのでそんなサンプルコードは作ってはいけない 「まず、arr のオブジェクトサイズは 24 バイトと表示されますが、」じゃねえよw 「内部の詳細を無視してしまうと恐ろしいエラーが発生する可能性があります。」もう起こっているw 以上
221 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 10:38:22.56 ID:kY5VkQwD0.net] >>198 そもそも上のコード size = 24 bytes size = 17 bytes この2つはどこから出てきたんだ? printCharArray のあとの printf("size = %lu bytes \n", ... ); はひとつしかないのに >>195 array1とarray2がそれぞれスタックに積まれるなら array2、array1の順は正しいし array1とarray2がリテラルとしてコード上に存在するならarray1、array2の順は正しい ただの最適化の問題じゃないのか
222 名前:デフォルトの名無しさん [2022/09/18(日) 13:53:49.44 ID:KpBP36NGa.net] 文系は全称と単称の区別が出来ない 大抵の馬鹿はこれで判別出来る
223 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 14:04:23.72 ID:CIgAfYZs0.net] そういう表現も、大体根拠が希薄 血液型占いと同程度
224 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 14:12:29.01 ID:Rev08jtKa.net] >>203 規格では一切順序の保証はないので 同じ結果が欲しければそのぺーじと同じ環境を用意してください
225 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 18:22:49.00 ID:JcdidFMxd.net] 機械翻訳まるだしだし Pythonのおまけで載ってるだけだから そんなページあてにするなとしか
226 名前:デフォルトの名無しさん [2022/09/18(日) 18:23:22.20 ID:rN2/Bhfe0.net] >>212 Windowsのメモ帳でUTF-8で保存するとBOMが先頭に入った状態になるよね。 そういう変な出力をするソフトがあるせいでUTF-8なのにBOMの有無を意識しなきゃいけなくなるんだよ。
227 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 19:08:21.37 ID:OVhdQ/fk0.net] >>223 UTF-8 ではない形で保存されている可能性はいつでもあるわけだが……。
228 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 19:35:00.75 ID:CIgAfYZs0.net] メモ帳で保存する場合、選択はこの中から https://i.imgur.com/eJf3vLE.png
229 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 20:14:09.21 ID:tcByEu8Hd.net] wcharはutf8圧に負けて廃れるんかね Cのようなロートル言語使ってると固定幅(但し幅は決まっていない)エンコの有り難みをひしひしと感じる
230 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 21:11:58.46 ID:/3elu/X80.net] ストレージはutf-8 メモリーはwchar_t じゃね?
231 名前:デフォルトの名無しさん [2022/09/18(日) 22:03:00.04 ID:rN2/Bhfe0.net] >>225 それでBOM付き選んじゃうやつが居るんだろうな。選択肢無くして欲しいものだ。
232 名前:デフォルトの名無しさん [2022/09/18(日) 22:05:23.89 ID:rN2/Bhfe0.net] >>226 入出力でJavaみたいに変換すれば良いじゃん。 iconvライブラリとか使って。
233 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 22:23:37.69 ID:zhWgY60z0.net] >>229 ふぇふふ…
234 名前:デフォルトの名無しさん (ワッチョイ 9f2c-ret5) mailto:sage [[ここ壊れてます] .net] メモ帳は、BOM 付きUTF-8 になるから、ダメ BOM無しUTF-8は、VSCode, サクラエディタなどを使う。 TeraPad は、新し目の文字に対応していないので、ダメ
235 名前:デフォルトの名無しさん (ワッチョイ 9f63-E+l9) mailto:sage [[ここ壊れてます] .net] メモ帳、デフォルトでBOM無しで保存する BOM付けるにはセレクトで一番下を選ぶ操作が必要
236 名前:デフォルトの名無しさん (テテンテンテン MM3f-2Jl6) mailto:sage [[ここ壊れてます] .net] UnicodeのBOMはUTF-{8, 16, 32}で並び順が違うから判別に使える 逆に無いと推測に頼るしかない メモ帳はSJISのテキストを開かれることもあるから、BOM無しUTF-8の場合は推測している BOMが有れば確実に判別出来る なのでBOM付きUTF-8は悪くない
237 名前:デフォルトの名無しさん (ワッチョイ 5701-dv3E) [[ここ壊れてます] .net] WindowsではBOM付きのほうが便利だけどね。
238 名前:デフォルトの名無しさん [2022/09/18(日) 23:12:31.63 ID:a87PubfG0.net] gccもBOMに対応したことですし。
239 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 23:23:26.35 ID:CUVLEdWC0.net] UTF-8にBOMが要らないと主張しているのは今の現実について言っているわけじゃなくて 「UTF-8しか存在しない美しい世界」を目指している活動家だからな。 説明したところで話が?み合わない。
240 名前:212 mailto:sage [2022/09/19(月) 00:00:08.46 ID:hV59E8S+H.net] >>236 よくわかっていますね、実はそうなんですよね
241 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 00:15:30.26 ID:YVA4ZVOh0.net] 自覚したなら今度からはバイトオーダーにかこつけたアホな主張はやめとけよ。
242 名前:ハノン mailto:sage [2022/09/19(月) 00:18:28.74 ID:hV59E8S+H.net] 美しい世界(爆笑)のために、今後も活動を続けていきます!
243 名前:デフォルトの名無しさん [2022/09/19(月) 02:37:34.04 ID:Z9ZARiSG0.net] ユニコードの上位セットであるGB18030もあるんだけど。
244 名前:デフォルトの名無しさん [2022/09/19(月) 11:10:12.09 ID:NE4NRLG3F.net] >>236 そんなあなたに Nim がおすすめ
245 名前:デフォルトの名無しさん [2022/09/19(月) 11:11:36.70 ID:NE4NRLG3F.net] >>233 ASCII (8bit以内) しかないテキストに BOM 付いてたらさすがにうざいと思う
246 名前:ハノン mailto:sage [2022/09/19(月) 11:21:09.68 ID:PpMrjNAJH.net] >>242 ですよね! コードは普通コメントも英語で書くし、なんで BOM がつかなきゃならないのか意味不明なんですよ、ましてや UTF-8 に BOM つけてもいい規約なんて後付けなんでしょう? 美しい世界(爆笑)のために今日もがんばります!
247 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:40:57.93 ID:YVA4ZVOh0.net] >>241 まさに今、話が噛み合わないことを痛感した。
248 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:41:54.30 ID:zeLiCYh20.net] なくても使えるなら、ない方が良い
249 名前:はちみつ餃子 mailto:sage [2022/09/19(月) 11:43:27.96 ID:npVSxydm0.net] どれでもいいけど規格で決めないという対処には愚痴を言いたくもなる。
250 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:55:32.42 ID:M3xsgC0JM.net] >>242 ウザいの定義を言え 普通にテキストエディタで編集してるだけなら気付きもしないだろう
251 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:00:13.75 ID:zeLiCYh20.net] 気付かなかったあなたはたぶん幸せ者です
252 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:13:35.24 ID:b1CdxAyP0.net] 10年前ならともかく今時BOMの有無で困ることなんてほぼなくね?
253 名前:デフォルトの名無しさん [2022/09/19(月) 12:30:39.37 ID:/08McGz80.net] BOMなしUTF-8のデータを読ませるとエラーになるプログラムを作ったやつがいる。 こういうやつをどうするべきか?
254 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:33:02.11 ID:zeLiCYh20.net] 市中引き回しのうえ、磔獄門で
255 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:00:37.09 ID:YVA4ZVOh0.net] 仕様で読めることになっているのにエラーになるならバグだがそうでないなら読ませる方が悪い。 日本語Windows向けアプリの大半はそうだな。
256 名前:デフォルトの名無しさん [2022/09/19(月) 13:09:05.53 ID:/08McGz80.net] 仕様ではUTF-8と書いてあるだけ。ならばBOMの有無に関係なく読めるようにするべき。
257 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:13:10.64 ID:zeLiCYh20.net] 仕様ではUTF-8と書いてあるなら、あったら読み飛ばせば良いだけだな
258 名前:デフォルトの名無しさん [2022/09/19(月) 13:29:40.55 ID:/08McGz80.net] にも関わらずBOMがないとわざわざエラーを出して終わる
259 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:40:15.70 ID:b1CdxAyP0.net] 単なるバグだろ、とっとと直させろよ