>>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);
こんな感じにできるけど、面倒でしょ。
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
435431 (ワッチョイ 857b-4PPV)
2020/07/08(水) 06:21:59.38ID:sJ2uy93A0■ このスレッドは過去ログ倉庫に格納されています
