!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:Z3WQBr9X0417デフォルトの名無しさん (ワッチョイ 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 後でメンテが大変だぞ
半年経ったら、今の自分が他人になる
半年経ったら、今の自分が他人になる
442デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/08(水) 11:22:06.26ID:woPNJQ5aH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
443デフォルトの名無しさん (ワッチョイ cb69-6wWl)
2020/07/08(水) 11:45:14.69ID:KKQXIGLi0 #define WIDTH 10
#define MACRO_TO_STR(name) #name
MACRO_TO_STR(WIDTH)
は渡された識別子をそのまま文字列化するので "WIDTH" になる
マクロWIDTHを展開した後での文字 "10" が欲しいときは >>435 のように
一見無駄に見えるマクロのピンポンを行なう
#define MACRO_TO_STR(name) #name
MACRO_TO_STR(WIDTH)
は渡された識別子をそのまま文字列化するので "WIDTH" になる
マクロWIDTHを展開した後での文字 "10" が欲しいときは >>435 のように
一見無駄に見えるマクロのピンポンを行なう
444デフォルトの名無しさん (スップ Sd03-rJjo)
2020/07/08(水) 11:48:56.64ID:l8qeRlOJd x0000.netをNGっと
445デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 12:22:54.79ID:SF9V14yC0 ああ、そういうことか
解説dx
解説dx
446デフォルトの名無しさん (ワッチョイ 35e6-ucCN)
2020/07/08(水) 13:27:10.12ID:0ZaAZSr60 >>428
その「正しく入力してください」に至らないのが今回の話題
その「正しく入力してください」に至らないのが今回の話題
447デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/08(水) 16:37:27.08ID:mO8IXR2n0 >>444
まだやってなかったのか?
まだやってなかったのか?
448デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/08(水) 17:48:03.59ID:T5O+XOTRd449デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:06:49.38ID:EQ9tLW1C0 不正入力ではなくてコンソールと入力バッファの仕様が問題
標準入力stdinがキーボードの場合入力バッファには目的とする文字コードの直後に必ず改行コードが残る
scanfの書式が%dなどの数値型だと改行は取り込まれないので数値型を連続して使用した場合は型が合わずに続くデータを取りこぼす
標準入力stdinがキーボードの場合入力バッファには目的とする文字コードの直後に必ず改行コードが残る
scanfの書式が%dなどの数値型だと改行は取り込まれないので数値型を連続して使用した場合は型が合わずに続くデータを取りこぼす
450デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 18:11:07.83ID:SF9V14yC0 ん、%dは先行する空白類文字をスキップするぞ
451デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/08(水) 18:25:39.71ID:QndvSIjd0 >>449
正しい入力で正しく動かないならそれはバグだよ
正しい入力で正しく動かないならそれはバグだよ
452デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:29:27.69ID:EQ9tLW1C0 訂正
たしかに数値型だけなら問題はないね
数値型と文字型の混在時に問題が起きる
scanf("%d", &x); // 数値 + 改行
...
scanf("%c", &y); // 必ず直前の改行となるので入力不可
...
scanf("%d", &z); // 数値 + 改行
たしかに数値型だけなら問題はないね
数値型と文字型の混在時に問題が起きる
scanf("%d", &x); // 数値 + 改行
...
scanf("%c", &y); // 必ず直前の改行となるので入力不可
...
scanf("%d", &z); // 数値 + 改行
453デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 09:32:01.69ID:vrNDocOmF 無理にscanf使わずに
fgetsとsscanfやろ
fgetsとsscanfやろ
454デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 09:45:13.42ID:jzluGOwX0 またアホが湧いた
455デフォルトの名無しさん (ワッチョイ 23ad-Bqa1)
2020/07/09(木) 09:51:17.63ID:RjpwDZh+0 Windows10proでC使いたいんです。
目的は大量のテキストデータの変換なので、
グラフィックとか音とかはプログラミングしません。
テキストでコーディングして、
CUIで実行ってな感じができればいいんですけど、
このぐらいだとMinGWが適当なんでしょうか?
目的は大量のテキストデータの変換なので、
グラフィックとか音とかはプログラミングしません。
テキストでコーディングして、
CUIで実行ってな感じができればいいんですけど、
このぐらいだとMinGWが適当なんでしょうか?
456デフォルトの名無しさん (ワッチョイ ad7c-jFjK)
2020/07/09(木) 09:57:12.39ID:uQo6bqoB0 tdm-gcc
457デフォルトの名無しさん (ワッチョイ 23a5-T5iX)
2020/07/09(木) 09:57:39.86ID:f5aLRaXK0458デフォルトの名無しさん (ワッチョイ 233d-Bqa1)
2020/07/09(木) 10:57:01.79ID:g1m/M0Pb0459デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 11:04:23.27ID:vrNDocOmF 一行目も二行目も知ってる
460デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 12:36:53.26ID:ccQ+p+MVM461デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/09(木) 12:39:21.11ID:zi4hgNgDd 初心者教育でとりあえずコードを書い動かしてみる
でscanfじゃなきゃ何を使えって?
でscanfじゃなきゃ何を使えって?
462デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:41:37.65ID:jzluGOwX0 >>460
対策しようのない欠陥と自分で言いながら何が正しいとぬかす?
対策しようのない欠陥と自分で言いながら何が正しいとぬかす?
463蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-FiFk)
2020/07/09(木) 12:42:19.97ID:2UhyUN9nd fgets
464デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:48:17.81ID:jzluGOwX0 配列もFILE構造体も教えてない時点でfgetsとsscanfとか無理だろ
逆にこの辺まで教えてまだ実用的な入力関数が作れないようなら教え方が下手すぎ
逆にこの辺まで教えてまだ実用的な入力関数が作れないようなら教え方が下手すぎ
465デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:49:49.88ID:jzluGOwX0 つーか、その被害者がいつまでもfgetsとsscanfにしがみついたまま進歩しないんだろうが
466デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:17:37.22ID:ccQ+p+MVM467デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:18:31.71ID:ccQ+p+MVM >>465
お前みたいな老害はそうなのかもなw
お前みたいな老害はそうなのかもなw
468デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 16:18:37.55ID:jzluGOwX0469デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/09(木) 16:39:16.37ID:8CMntJuyF scanf要らねと思ったら後はgetcharで何でも出来るだろ
470デフォルトの名無しさん (ドコグロ MMa9-65sm)
2020/07/09(木) 18:22:16.49ID:EQDklninM471デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 18:51:05.00ID:jzluGOwX0 >>470
罵倒だけのレスもらうと優越感で気持ちいいわ
罵倒だけのレスもらうと優越感で気持ちいいわ
472デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/09(木) 19:04:00.56ID:g5p2N13I0 代案出さずに否定だけって
ダサい
ダサい
473デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 19:22:40.81ID:0UE7wqUeM 罵倒だけの>>468みたいなレスを見ても別に優越感なんて感じないけどね
むしろ憐れみしか感じないw
むしろ憐れみしか感じないw
474デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:17:48.63ID:jzluGOwX0475デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:18:33.10ID:jzluGOwX0 ここ技術板だぜ? 少なくとも何らか専門用語入れようや
476デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/09(木) 22:17:39.65ID:bcr0ax7J0 > 罵倒だけのレスもらうと優越感で気持ちいいわ
どこに専門用語があるんだろう…?
ますます哀れに思えてきたわw
どこに専門用語があるんだろう…?
ますます哀れに思えてきたわw
477デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 06:59:30.23ID:d1dEL6aU0 技術的な話で突っ込めなくなってる無様な姿が最高の褒め言葉さ
478デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:01:07.48ID:d1dEL6aU0 fgetsとsscanfを使うのが正しい!と強弁してるだけで説得力ねえんだよ
479デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 07:40:55.73ID:qqWcHkmP0 >>478
scanf使うならfgetsとsscanf使えって話が出ただけでないの?
scanf使うならfgetsとsscanf使えって話が出ただけでないの?
480デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:44:14.14ID:d1dEL6aU0 scanfの使い方の話をしてたんだよ
そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た
そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た
481デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:49:10.16ID:d1dEL6aU0 464あたりでscanfを使う理由をちゃんと説明しているのに
そこは無視してくだらねえ戯れ言ばかりぬかしやがる
そこは無視してくだらねえ戯れ言ばかりぬかしやがる
482デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 07:54:54.37ID:7RoGj1wV0 >>464はscanfを使う理由ではない
483デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 08:08:34.80ID:d1dEL6aU0 だから何の説明もなしにdisっても説得力ねえんだってば
484デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:09:27.01ID:a7Xsl7M10 scanf使いたいなら割り切って使うか、それで起こる問題を解決したいなら別の関数使えって流れじゃないの?
モメるポイントが分からんのだが。
モメるポイントが分からんのだが。
485デフォルトの名無しさん (ワッチョイ 857b-4PPV)
2020/07/10(金) 08:10:39.67ID:bFyJThgA0 >>414 の質問に戻ると getchar あたりで1字ずつ拾いながら
必要に応じてバッファを拡張する方法になるのかねぇ。
%s の機能だけなら空白と空白以外だけ考慮すりゃいいわけで。
ロケールまで対応させるとこれまた大変そうだけど。
必要に応じてバッファを拡張する方法になるのかねぇ。
%s の機能だけなら空白と空白以外だけ考慮すりゃいいわけで。
ロケールまで対応させるとこれまた大変そうだけど。
486デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:22:02.59ID:a7Xsl7M10 >>485
入力した文字列を何に使うのか次第だろう。
入力すること自体は手段であって目的ではないのだから。
オンメモリに全部展開しないといけない用途なのか?
ハッシュを求めるために計算済みの値は捨てていいのか?
暗号化のために一定のブロック長があればいいのか?
適した方法はそれぞれ異なる。
んでその当初の質問の答えは既に出てるし。
入力した文字列を何に使うのか次第だろう。
入力すること自体は手段であって目的ではないのだから。
オンメモリに全部展開しないといけない用途なのか?
ハッシュを求めるために計算済みの値は捨てていいのか?
暗号化のために一定のブロック長があればいいのか?
適した方法はそれぞれ異なる。
んでその当初の質問の答えは既に出てるし。
487デフォルトの名無しさん (ワッチョイ e31e-x8q3)
2020/07/10(金) 09:04:58.78ID:lyRh4kcU0 「getchar あたりで1字ずつ拾いながら」
ってことを経た後でないと scanf を正しく使うのは難しいんじゃないかな。
ってことを経た後でないと scanf を正しく使うのは難しいんじゃないかな。
488デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 11:08:56.61ID:2/CcitmbF489デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:21:34.56ID:qqWcHkmP0 >>488
実際そうかなと思うよ。他の人の話の興味が移ってきてるのにじずんの言いたいことが正しい
実際そうかなと思うよ。他の人の話の興味が移ってきてるのにじずんの言いたいことが正しい
490デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:22:21.30ID:qqWcHkmP0 途中で書き込んでしまった。
自分の言いたいことが正しい、他のことを話す奴は理会できてないって思考なんだろう。
自分の言いたいことが正しい、他のことを話す奴は理会できてないって思考なんだろう。
491デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 11:37:03.81ID:g0Z+ZvbJa めんどくせえから GNU のライブラリにある getline() でも使っとけよ。
1行がどんなに長くてもメモリが許す限りどんどん読んでくれるぞ。
1行がどんなに長くてもメモリが許す限りどんどん読んでくれるぞ。
492デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 11:47:09.11ID:MPjC4RwwM 関数を呼び出す側が、使用するメモリの上限をコントロールできないというのは
それはそれで微妙にリスク
それはそれで微妙にリスク
493デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:00:38.40ID:g0Z+ZvbJa じゃあfgets()で。
494デフォルトの名無しさん (ワッチョイ cbd2-ucCN)
2020/07/10(金) 12:23:02.32ID:y8IP2wTs0 誰にも迷惑かからないところでどう使おうかは自由だな。
495デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:23:50.72ID:d1dEL6aU0496デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 12:26:34.82ID:a7Xsl7M10497デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:28:13.10ID:d1dEL6aU0498デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:28:33.38ID:6/cNdm0nd 入門書でscanfを扱うのが適切か否か
499デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 12:31:35.35ID:2/CcitmbF getchar()からが良い
scanf()は反面教師
scanf()は反面教師
500デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:32:24.53ID:6/cNdm0nd 数値入力にたどりつくまでえらい大変だな
501デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:45:54.18ID:Y8Yy4fdKa まあ、scanf()の%sだけが問題なんだよな。
502デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:47:54.13ID:d1dEL6aU0503デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 12:55:06.27ID:qqWcHkmP0 >>498
入門書のプログラムは基本的に使うのは読者本人だから、お手軽な入力処理として使うのはありだと思う。ただ、使い方の注意点は簡単に補足しておいてほしいかな。知らずに、固まった!バグだ!とか騒いだりしないように。
それと、入門書の時点で堅牢な入力処理なんて必要ではないけど、将来的に実用的なプログラムを作るときには必要になってくるということを触れておいてほしい。
入門書のプログラムは基本的に使うのは読者本人だから、お手軽な入力処理として使うのはありだと思う。ただ、使い方の注意点は簡単に補足しておいてほしいかな。知らずに、固まった!バグだ!とか騒いだりしないように。
それと、入門書の時点で堅牢な入力処理なんて必要ではないけど、将来的に実用的なプログラムを作るときには必要になってくるということを触れておいてほしい。
504デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 13:37:44.03ID:d1dEL6aU0505デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/10(金) 13:40:12.53ID:pQ428/DjH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
506デフォルトの名無しさん (ワッチョイ 0391-LoFw)
2020/07/10(金) 13:54:36.12ID:cHuUURyg0 俺に聞け! ってだけで
回答するとは言っていない
回答するとは言っていない
507デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/10(金) 14:21:32.04ID:/uHfdbTha 確かに>>1の概要欄にも答えるとは一文字も書かれて無いw
508デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 18:44:30.98ID:d1dEL6aU0 そこへ逃げるかwww
509デフォルトの名無しさん (オイコラミネオ MM51-L1/G)
2020/07/10(金) 18:55:09.14ID:rYXxVyEBM510デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 19:00:44.43ID:7RoGj1wV0 言い出しっぺの法則
512デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 22:08:00.13ID:edpv1F1UM >>511
QZ先生がどのくらいのリスクを前提に言っているのかにもよりますけど、
上限なき malloc については、リスク回避の点で、私はやっぱり問題にしたいですねえ。
おっしゃる通り、malloc が失敗を返した場合は概ね問題ないと思うのですが。
逆に malloc が成功を返した場合はどうです?
共有リソースとしてのメモリを奪いきってしまった結果としての成功であるなら、
OSによっては、他のプロセスのメモリ確保失敗に伴う致命的エラーを誘発するなどして、
広範囲な問題を引き起こすやもしれません。
先人の知恵として、システムコールやAPIの仕様として、インターフェイスにせよ、内部的にせよ、上限を設けてあると思います。
getline の内部は見てないのですが、極端に大きなサイズになりそうなら、malloc を呼び出す前に、
上限値を超えました的なエラーを返すような、慎重なコーディングになっていることを期待したいところです
QZ先生がどのくらいのリスクを前提に言っているのかにもよりますけど、
上限なき malloc については、リスク回避の点で、私はやっぱり問題にしたいですねえ。
おっしゃる通り、malloc が失敗を返した場合は概ね問題ないと思うのですが。
逆に malloc が成功を返した場合はどうです?
共有リソースとしてのメモリを奪いきってしまった結果としての成功であるなら、
OSによっては、他のプロセスのメモリ確保失敗に伴う致命的エラーを誘発するなどして、
広範囲な問題を引き起こすやもしれません。
先人の知恵として、システムコールやAPIの仕様として、インターフェイスにせよ、内部的にせよ、上限を設けてあると思います。
getline の内部は見てないのですが、極端に大きなサイズになりそうなら、malloc を呼び出す前に、
上限値を超えました的なエラーを返すような、慎重なコーディングになっていることを期待したいところです
513はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 053e-ucCN)
2020/07/10(金) 23:07:47.23ID:HDImBgbn0 >>511
実行環境に固有の特殊事情ではあるけど
Linux だとメモリが足りなくても malloc が成功する場合がある。 (オーバーコミット)
malloc の返り値を気にしても無駄。
想定以上の巨大な行の読み込み (メモリ割り当ての失敗) に対して
何か対処する機会なくプロセスごと殺される (OOM Killer) かもしれないので、
想定する上限があるなら設定できて欲しいよ。
実行環境に固有の特殊事情ではあるけど
Linux だとメモリが足りなくても malloc が成功する場合がある。 (オーバーコミット)
malloc の返り値を気にしても無駄。
想定以上の巨大な行の読み込み (メモリ割り当ての失敗) に対して
何か対処する機会なくプロセスごと殺される (OOM Killer) かもしれないので、
想定する上限があるなら設定できて欲しいよ。
514デフォルトの名無しさん (ワッチョイ 2301-LRpg)
2020/07/11(土) 00:41:24.74ID:UdJEarb20 ドライバレベルの仕様に詳しい人って、そこそこ不幸だよね😅
515デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/11(土) 00:58:32.96ID:YkgvwUMV0 誰かが特攻隊に志願しないと行けないからな
516デフォルトの名無しさん (ワッチョイ 45bd-L1/G)
2020/07/11(土) 04:47:05.81ID:dhYEJgZ00 >>513
メモリを確保するだけじゃなく中身を詰めて返すから、内部でメモリ量を超える malloc に成功しながら中身を詰めてる過程でメモリ不足で落ちそうだね。
上限設けてないと回避できない深刻な問題になりそう。
メモリを確保するだけじゃなく中身を詰めて返すから、内部でメモリ量を超える malloc に成功しながら中身を詰めてる過程でメモリ不足で落ちそうだね。
上限設けてないと回避できない深刻な問題になりそう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
