!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X0 >>341 ありがとうございます
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
344デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 18:53:06.85ID:fF6t87uZa 式の値は x = 1 なら 1 だけど、その式の値が x と同一といわれると微妙な気が
コンパイラによって結果が変わってきそうな気も
コンパイラによって結果が変わってきそうな気も
345デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 19:00:52.23ID:zYxBmbbI0 数学の変数とプログラムの変数は別物。
346デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:34:42.19ID:5xR8poHP0 そもそもイコールではなくて代入だもんね
347デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 20:36:44.26ID:TsX0h7IG0 比較が =
代入が :=
の方が良かったと思う
代入が :=
の方が良かったと思う
348デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:37:36.35ID:5xR8poHP0 :3
349デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/27(土) 20:39:21.93ID:ItnTp6fM0 >>342
寝るの早いよ!
寝るの早いよ!
350デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 20:42:32.55ID:zYxBmbbI0 つ ぴゅう太BASIC
351デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 20:44:48.50ID:aqzZKmXR0 >>347
PASCALが嫌いな人が作った言語でか?
PASCALが嫌いな人が作った言語でか?
352デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:56:58.25ID:YxSvZ5UV0 代入も比較も同じ = 記号なんだけど代入した結果を利用できない言語はあるね。
353デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:57:46.41ID:YxSvZ5UV0 あ、ごめん。ないかな?でも作れなくはないか。
354デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:20.32ID:fF6t87uZa >>353
代入文の言語とか
代入文の言語とか
355デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:54.32ID:fF6t87uZa 文は値を持たないから
356デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:16:43.71ID:fF6t87uZa 代入式なら
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
357デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 21:48:32.85ID:TsX0h7IG0 >>352
BASIC
BASIC
358デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 21:54:01.50ID:YxSvZ5UV0 あ、そうだ。昔の BASIC がそれだったな。今もそうか。
359デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/27(土) 22:14:52.03ID:8IoNpLP20 Fortranも駄目だった気がする
360デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/27(土) 22:45:34.92ID:3uU6UKGu0 iZ-Cで頑張っている方々もいる。
361デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 22:52:26.39ID:Fil4ka9J0362デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 23:11:39.40ID:YxSvZ5UV0 ま、しかし、本当なら代入は全く違う記号(あるいはワード)使って欲しいところではある。
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
363デフォルトの名無しさん (ガラプー KKb3-hH/T)
2020/06/27(土) 23:17:49.21ID:WNNU6Y/YK それ小学生のとき見たからすんなり入ってきた
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
364デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 23:24:19.62ID:zYxBmbbI0 >a = b = 0:
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
365デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:37:39.31ID:fF6t87uZa そっか、そのとき b = 0 は代入文じゃなくて、値を持つ比較式ですね
文法は間違いでした
文法は間違いでした
366デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:38:09.75ID:fF6t87uZa 文法エラーは間違いでした
でした
でした
367デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/28(日) 00:32:47.05ID:akwdxVh60 =は代入が比較より使用頻度が高いので、2文字(=:)が代入だと地味に面倒そう。
368デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/28(日) 07:11:45.70ID:4OGtUBl/0 >>362
APLお勧め
APLお勧め
369デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/28(日) 11:47:20.61ID:vGhSDCc20 iZ-Cに反応しないのは素人か。
370デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/28(日) 17:12:13.76ID:8Xgo7zrJ0 >>368
今のAPLはつまんなくなったね
今のAPLはつまんなくなったね
371デフォルトの名無しさん (ワッチョイ 0fda-5fXH)
2020/06/28(日) 21:51:57.49ID:kMbOl++G0 変数名を文字列で取得したいんだけど どうしたらいいかな
printfデバッグとかで、 printf("hogehoge=%d\n",hogehoge); ってやるじゃん?
これをちょっとだけ効率よくしたいけど、マクロでどうにかならん?
printfデバッグとかで、 printf("hogehoge=%d\n",hogehoge); ってやるじゃん?
これをちょっとだけ効率よくしたいけど、マクロでどうにかならん?
372はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/28(日) 21:54:48.80ID:Iks3cRKy0 >>371
マクロ定義のときは識別子に # を付けると識別子を文字列扱いできる。
マクロ定義のときは識別子に # を付けると識別子を文字列扱いできる。
373蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8f01-c0lz)
2020/06/28(日) 22:04:34.55ID:2DMHRA/z0 #define POUT(x) printf("%s = %d\n", #x, (x))
こんな感じ?
こんな感じ?
374蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-Oc0l)
2020/06/28(日) 22:18:47.05ID:dcZQFZ1fd #define POUT(x) printf(#x " = %d\n", (x))
こっちの方がいいか?
こっちの方がいいか?
375デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/28(日) 22:53:44.96ID:HzcxpANJ0 文字列リテラルの連結は滅多に使わないけど盲点というか
わかってて使うには良いものだね
"aaaa" "bbbb" → "aaaabbbb" として解釈される
わかってて使うには良いものだね
"aaaa" "bbbb" → "aaaabbbb" として解釈される
376デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/28(日) 22:57:59.33ID:qWBhd30v0377デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/28(日) 23:05:22.34ID:sygO1Ih/0 usage表示したいときとか普通に使うわ
378デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/29(月) 00:09:50.35ID:eubxXrdwd 私も普通に使う
379デフォルトの名無しさん (ワッチョイ 8f01-/Fs/)
2020/06/29(月) 01:27:56.70ID:C/fQS0GP0 viがバグるのでやめてください。
380デフォルトの名無しさん (ワッチョイ cf05-NJGG)
2020/06/29(月) 08:55:46.03ID:UQIGysI+0 vimはバグらないぞ
381デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 08:57:31.19ID:y9Ww1t9/H もしかして: vim
382デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 08:58:42.61ID:nBP9TntY0 vimじゃないviには長年世話になったもんだ
383デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/29(月) 13:35:04.89ID:rjGVLU620384デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:01:50.53ID:fw2IFdDxF and が & と &&
or が | と ||
という具合に bit 演算用と論理演算用で演算子が違いますが
bit 演算の xor は ^ で
int a = 123, b = 456;
のとき a^b と描けますが
論理式の xor はどう描けばいい?
bool u = true, v = true;
のとき u^v と描いても問題無いですか?
or が | と ||
という具合に bit 演算用と論理演算用で演算子が違いますが
bit 演算の xor は ^ で
int a = 123, b = 456;
のとき a^b と描けますが
論理式の xor はどう描けばいい?
bool u = true, v = true;
のとき u^v と描いても問題無いですか?
385デフォルトの名無しさん (ワッチョイ 0fda-pW1u)
2020/06/29(月) 15:17:39.29ID:TPMqgpKl0 (u != v) で良いのでは?
386デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:25:14.45ID:fw2IFdDxF bool に 0 と !0 以外が入ってても大丈夫ですか?
387デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:27:23.97ID:fw2IFdDxF もし御存じの方がいらっしゃったらで良いのですが
"u ^^ v" みたいな演算子が無い理由も知りたいです
問題後出しで済みません
"u ^^ v" みたいな演算子が無い理由も知りたいです
問題後出しで済みません
388デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 15:37:10.60ID:y9Ww1t9/H ビットごとのxorは暗号とかで多用するけど、
論理式のxor(一方のみ真)はめったに使わないからかと。
!u != !v が最小かな。
論理式のxor(一方のみ真)はめったに使わないからかと。
!u != !v が最小かな。
389デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:41:17.96ID:fw2IFdDxF ありがとうございました
390デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 16:32:31.26ID:nBP9TntY0 関係演算子の結果はint型の1か0なんだから
a < 124 ^ b < 456 でもいいはず
a < 124 ^ b < 456 でもいいはず
391デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:07:26.21ID:TPMqgpKl0 C99以降のbool型(_Bool型)の値はfalse(0)とtrue(1)のどちらかしか取り得ない
変数や式の評価が0以外の場合はすべて1に変換される
評価結果の値が不明の場合はbool型にキャストすると良い
(bool)u != (bool)v
変数や式の評価が0以外の場合はすべて1に変換される
評価結果の値が不明の場合はbool型にキャストすると良い
(bool)u != (bool)v
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 17:12:09.58ID:vApDDB4S0 イディオムとしては !! を付ける (否定を二回やる) というのもよく知られている。
(見づらいので良くないという意見もある。)
(見づらいので良くないという意見もある。)
393デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 17:19:40.81ID:nBP9TntY0 !!は厨二病臭くて俺はあんまりやらないが
この程度で読みづらいとか言い出すスキル不足なやつに迎合する意図は毛頭ない
この程度で読みづらいとか言い出すスキル不足なやつに迎合する意図は毛頭ない
394デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:24:25.71ID:TPMqgpKl0 適当サンプルプログラム
https://i.imgur.com/OgY6Qcz.png
https://i.imgur.com/OgY6Qcz.png
395デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 17:44:20.33ID:1Lbf5C9Kd 0, !0 意外の値が入ってた場合にどんな結果を期待するかによる
396デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/29(月) 17:55:06.30ID:I0J8qHbO0 禅問答かよ。
397デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/29(月) 19:26:41.50ID:xaDJZCCE0398デフォルトの名無しさん (JP 0Hbf-EqIm)
2020/06/29(月) 19:30:21.97ID:rBtTXcyIH C言語に使ってるエディタとかIDEとか教えてください
OSとかの環境もあるとありがたい
OSとかの環境もあるとありがたい
399デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 19:31:22.68ID:JUEjBXx8d EDLIN
400デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 19:59:21.99ID:x9/2kcfz0 >>398
C言語を何に使うかによって全然違うと思うけど
C言語を何に使うかによって全然違うと思うけど
401デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 20:00:40.16ID:JUEjBXx8d 何に使うかでそんなに変わるか?
402デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 20:03:09.44ID:6d9dL1u1a C言語でエンドルフィンの造出をアヘアヘ
404デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/29(月) 20:13:09.53ID:o6pktO+O0 学習用途で ideone や codepad 規模で済むなら Webブラウザ
405デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 20:21:56.62ID:TPMqgpKl0406はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 20:23:46.01ID:vApDDB4S0 >>398
OS: Windows10
コンパイラ: gcc と clang (msys2 の pacman で入るやつ)
その他に Open Watcom C とか LCC (LSI-C じゃなくて Little C Compiler ね) とか
エディタ: Emacs
OS: Windows10
コンパイラ: gcc と clang (msys2 の pacman で入るやつ)
その他に Open Watcom C とか LCC (LSI-C じゃなくて Little C Compiler ね) とか
エディタ: Emacs
407デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 20:24:01.34ID:x9/2kcfz0 初学の時、H8に書くとき、arduinoに書くとき、それぞれ全部違ったわ。
408デフォルトの名無しさん (ワッチョイ 8f14-5Vex)
2020/06/29(月) 21:14:11.50ID:Gzb8Tiox0409デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/29(月) 21:49:44.45ID:uavgiC7w0 適切な問題とヒントが一番大事。
410デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/30(火) 06:48:50.33ID:W+MWiusu0 >>398
秀丸
秀丸
411デフォルトの名無しさん (ワッチョイ cf2c-wMgy)
2020/06/30(火) 07:20:47.85ID:ojYrCHBE0 漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を、build-essential で、コンパイルして入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を、build-essential で、コンパイルして入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential
412デフォルトの名無しさん (ラクッペペ MM4f-pW1u)
2020/06/30(火) 11:26:03.93ID:Xg3HKp34M build-essential以外はC言語には関係ないな
413デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/02(木) 09:18:11.06ID:1XrTO7+60 Cに限らず汎用で使える開発環境で色々やってるってことかと。
俺も基本的にはvimとmakeで何でもやる。
vimの中でとりあえず :make と打ってQuickFix機能でエラー修正。
上手く拾ってくれない時は ~/.vimrc で errorformat 変数に追加。
>>398 の人はOSも知りたいってことなので追加。
Linuxのウィンドウ環境使わないコンソールでfbterm(日本語表示用)。
ツール類はディストリビューションに入ってた奴。
俺も基本的にはvimとmakeで何でもやる。
vimの中でとりあえず :make と打ってQuickFix機能でエラー修正。
上手く拾ってくれない時は ~/.vimrc で errorformat 変数に追加。
>>398 の人はOSも知りたいってことなので追加。
Linuxのウィンドウ環境使わないコンソールでfbterm(日本語表示用)。
ツール類はディストリビューションに入ってた奴。
414デフォルトの名無しさん (JP 0H42-2vAA)
2020/07/06(月) 17:38:55.00ID:6O25/+p5H int main (void)
{ char a[256];
printf("Enter a string:");
scanf("%s", a);
(以下略)
勉強中に上のような「キーボード入力からchar型配列に文字列を格納する」という処理を見かけました
この例だと(ヌル文字含め)256文字以上の文字が入力されたときはその後の処理が正常にできなくなりますよね
現実的には値を充分大きく指定しておけば問題はないのでしょうが、入力された文字数に応じて要素数を適切に設定したりはできないのでしょうか?
{ char a[256];
printf("Enter a string:");
scanf("%s", a);
(以下略)
勉強中に上のような「キーボード入力からchar型配列に文字列を格納する」という処理を見かけました
この例だと(ヌル文字含め)256文字以上の文字が入力されたときはその後の処理が正常にできなくなりますよね
現実的には値を充分大きく指定しておけば問題はないのでしょうが、入力された文字数に応じて要素数を適切に設定したりはできないのでしょうか?
415はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/06(月) 17:43:57.76ID:Js6m+wFY0416デフォルトの名無しさん (ワッチョイ 2705-VQSO)
2020/07/06(月) 19:26:19.29ID:y838Udr90417デフォルトの名無しさん (ワッチョイ 1e63-BXkI)
2020/07/06(月) 19:39:29.44ID:A/JwDwXO0 後続処理で問題が起きる
418デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 19:40:44.58ID:X9mxW4kC0 a[255]=0;
419デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:42:40.45ID:sDUgop1M0 scanfは入力ミスでへんな無限ループに陥ったことがあるからなぁ。
420デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 20:45:13.65ID:X9mxW4kC0 それはscanfの問題?
421デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:50:02.85ID:sDUgop1M0 入力バッファに改行が残って云々ってことらしい。
422デフォルトの名無しさん (ワッチョイ 0a0e-VQSO)
2020/07/07(火) 06:45:34.69ID:hl3O6vw80 scanfの問題ではないね
!=EOFなんて書くバカが100%悪い
!=EOFなんて書くバカが100%悪い
423デフォルトの名無しさん (ラクッペペ MMc6-fHqu)
2020/07/07(火) 07:24:10.77ID:stuZ2AfxM 入力バッファに残った改行コードが問題の場合は fflush(stdin) で吐き出さないとどうにもならない
424デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 07:43:16.74ID:bJbvn87/0 fflush() が確実に効くのは出力ストリームだけでしょ。
stdin でも使える独自拡張された環境もあるか知れんけど。
stdin でも使える独自拡張された環境もあるか知れんけど。
425デフォルトの名無しさん (ワッチョイ 1ed2-VQSO)
2020/07/07(火) 07:54:27.38ID:p6ZLMZTk0 scanf前にバッファクリアするコードあったけど、
そういうやつってパイプやリダイレクトつかっても正常作動するの?
そういうやつってパイプやリダイレクトつかっても正常作動するの?
426デフォルトの名無しさん (ラクッペペ MMc6-06wU)
2020/07/07(火) 11:09:20.23ID:qR67pRFEM パイプやリダイレクトか判定する方法がOSによって提供されてる環境なら問題ない
427はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/07(火) 12:04:22.54ID:tzlORGl20 方法が用意されててもそれをきちんと利用してるソフトが少なかったら意味ないぞ。
428デフォルトの名無しさん (スッップ Sdaa-mf8G)
2020/07/07(火) 12:19:33.35ID:/8q6WRwjd scanfをそのまま不特定多数が使うソフトに入れることなんかないんだから
正しく入力してください
で終わる
正しく入力してください
で終わる
429デフォルトの名無しさん (スップ Sd4a-xROu)
2020/07/07(火) 13:58:40.76ID:OPOprIbsd scanfを何に使うかという話と
仕様を理解して使うという話は
別問題だ
仕様を理解して使うという話は
別問題だ
430デフォルトの名無しさん (エムゾネ FFaa-A0XE)
2020/07/07(火) 14:00:00.91ID:092JXqIfF431デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 16:19:53.16ID:bJbvn87/0 scanf には * の指定子ないんだわ。
432デフォルトの名無しさん (アウアウウー Sacf-Im8i)
2020/07/07(火) 18:32:30.56ID:e1WbjzO/a * には別の意味がある。
433デフォルトの名無しさん (ワッチョイ 6b01-Wiu6)
2020/07/07(火) 19:29:43.35ID:USscR6RS0 引き数から引っ張ってくる * がないとなると
sprintf で scanf フォーマット文字列を作るということになる?のか?
sprintf で scanf フォーマット文字列を作るということになる?のか?
>>423
それは環境依存
それは環境依存
435431 (ワッチョイ 857b-4PPV)
2020/07/08(水) 06:21:59.38ID:sJ2uy93A0 >>432
scanf の * 書式指定子は「読み捨て」の指示だったね。
printf の * とは使い方が違うけど、ちゃんとある。
…存在をすっかり忘れてたよ。ありがとう。
>>433
カーニハン&パイクの『プログラミング作法』には
sprintfで書式指定文字列を作る方法が載ってるね。
下に示す例に比べれば手軽で分かりやすい。
入力文字幅がコンパイル時固定ならマクロを駆使して…
// マクロ名を「マクロの内容を表す文字列」に変換するマクロ関数
#define MACRO_TO_STR_SUB(name) #name
#define MACRO_TO_STR(name) MACRO_TO_STR_SUB(name)
#define WIDTH 15 // 入力制限字数(末尾の'\0'を含まない)
char buf[WIDTH+1]; // +1 for '\0'
scanf("%" MACRO_TO_STR(WIDTH) "s", buf);
こんな感じにできるけど、面倒でしょ。
scanf の * 書式指定子は「読み捨て」の指示だったね。
printf の * とは使い方が違うけど、ちゃんとある。
…存在をすっかり忘れてたよ。ありがとう。
>>433
カーニハン&パイクの『プログラミング作法』には
sprintfで書式指定文字列を作る方法が載ってるね。
下に示す例に比べれば手軽で分かりやすい。
入力文字幅がコンパイル時固定ならマクロを駆使して…
// マクロ名を「マクロの内容を表す文字列」に変換するマクロ関数
#define MACRO_TO_STR_SUB(name) #name
#define MACRO_TO_STR(name) MACRO_TO_STR_SUB(name)
#define WIDTH 15 // 入力制限字数(末尾の'\0'を含まない)
char buf[WIDTH+1]; // +1 for '\0'
scanf("%" MACRO_TO_STR(WIDTH) "s", buf);
こんな感じにできるけど、面倒でしょ。
436デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 06:35:08.91ID:SF9V14yC0 char fmt[(size_t)floor(log10(~(size_t)0) + 1) + 3];
char buf[256];
sprintf(fmt, "%%%llus", sizeof buf - 1);
scanf(fmt, buf);
char buf[256];
sprintf(fmt, "%%%llus", sizeof buf - 1);
scanf(fmt, buf);
437デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 09:30:02.93ID:hADFKHguF438デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:07:58.22ID:SF9V14yC0 単項#はマクロの中でしか使えない
439デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 10:11:35.43ID:hADFKHguF #define MACRO_TO_STR(name) #name
そもそもこれもだめなんですね
そもそもこれもだめなんですね
440デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:34:21.44ID:SF9V14yC0 んなわけねえだろ
なんでやねん
なんでやねん
441デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/08(水) 10:59:20.81ID:g3a6T0uX0 後でメンテが大変だぞ
半年経ったら、今の自分が他人になる
半年経ったら、今の自分が他人になる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
