このメールは、OSASK-ML投稿フォームから書き込まれた内容です。
お名前: ベイサイド
ベイサイドです。
[OSASK 6482]へのレスです。
>   ええと、sprintf()なら、実は既にあります(GOを作るときに作りま
> した)。適当に体裁を揃えれば使えそうです(だから1日あれば、とOSA
> SK-Wikiに書いたわけですが)。%dも%sも%cも多分使えたと思います。
> %fは使えません。sprintf()があるので、cputs()と組み合わせてprintf
> ()作ることもできるでしょう。
希望をいえば
guigui00.rulでlib/stdio.libを追加して、
===== stdio.h =====
int *copen(const int x_size, const int y_size,
	struct LIB_WINDOW *window, const int x0, const int y0, const int color, const int backcolor);
int printf(const char *, ...);
int scanf(const char *, ...); ← 個人的にはあってもなくてもいいです
int sprintf(char *, const char *, ...); ← 個人的にはあってもなくてもいいです
int sscanf(const char *, const char *, ...); ← 個人的にはあってもなくてもいいです
(この5関数だけあれば十分)
====================
くらい楽だと本当に嬉しいです。
.... の部分さえ実装していただければあとは自分でなんとかします。
>   ただ、これがあったらあったで、乱用する人が出てきてしまうのが、
> 頭痛の種ではあります。sprintf()はそれなりに大きいですからねえ。
> OSASKでは自然にアプリを小さくする方向へ仕向けるために、その手の
> ライブラリ関数の組み込みにあまり熱心ではなかったという経緯があり
> ます。
乱用する人はいるでしょうね(笑)
ライブラリーをどれだけ小さく作れるが腕の見せ所でしょうか。
私もnaskが使えれば・・可変長引数を実装できるほどの技術があれば・・
>   初心者は、printf()があるとどうしてもこれを使いたくなってしまい
> 、これに頼る傾向が出てくるでしょう。そうすると、setdec()のような
> ことをやる人が少なくなって、setdec()はなんだか知らないが高度なこ
> とだという誤った印象が広がって、結局みんなでかいアプリばかり作る
> というOSASKらしくない結論にいたる可能性があります。それだけが心
> 配です。
初心者がHello Worldを試すために使うなら許されるのではないかと。
どっちみちグラフィックアプリを作るならguigui00.libに頼るしかないわけですから。
それでも質のよいコンソールゲーム(RPG,ADV)が出てくる可能性はあります。
>   僕みたいな性格でさえ、たいてい最初はデバッグのときだけ使うつも
> りだったりするわけですが、気が付くといっぱい使っていて、面倒だか
> らこれでいいや、とかになりそうな気がします。どう思われますか?
そうなんです。デバッグのときに使いたいんです。
現在でもコンソールなし版Wabaはコンソールあり版Wabaよりちょっと小さいですしね。
int a = 10;
char* b = "hoge";
cputs("a = ", stdout);
cputs(setdec(a));
cputs(", b = ", stdout);
cputs(b);
cputs("\n");
と書かなきゃいけないものが、
printf("a = %d, b = %s\n, a, b);
となると涙がでるほど嬉しいんですよ。
Wabaのエンジンはできるだけ効率を重視したいと思っていますが、Wabaで動くアプリは
できるだけ楽をしたいというのが本音です。そのために私は一生懸命Wabaを作ってます。