#include <guigui01.h>
/* これは関数の外で宣言するのが望ましい */
unsigned char cmdusage[] = {
0x86, 0x55, /* この2つは決まり文句なのでとりあえず変更しない */
0x0c, 0, 'n', 0x1c, 1, '#', /* この説明は本文で */
0x40 /* 最後のこれも決まり文句なので変更しない */
};
void setdec(char *s, int i, int n)
{
(ex0010.cと同じ内容)
}
char *skip_space(char *s)
{
(ex0010.cと同じ内容)
}
void G01Main()
{
int i, j = 0, n;
char s[11];
g01_setcmdlin(cmdusage); /* コマンドラインの使い方をシステムに教える */
n = g01_getcmdlin_int_s(0); /* 本文参照 */
for (i = 0; i <= n; i++) {
j += i;
}
setdec(s, j, 10);
s[10] = 0;
g01_putstr0(skip_space(s));
return;
}>efg01 ex0012.g01 usage>ex0012.g01 n:#
>efg01 ex0012.g01 n:100 5050 >efg01 ex0012.g01 n:1000 500500
0x0c, 0, 'n', 0x1c, 1, '#', /* この説明は本文で */
0x0c, (引数名の文字数-1), (引数名), 0x1c, (説明部分の文字数), (説明)
0x0c, 2, 'n', 'u', 'm', 0x1c, 6, 'n', 'u', 'm', 'b', 'e', 'r',
>efg01 ex0012.g01 n:100*10
#include <guigui01.h>
unsigned char cmdusage[] = {
0x86, 0x55,
0x0c, 0, 'i', 0x1c, 1, '#',
0x0c, 0, 'n', 0x1c, 1, '#',
0x40
};
void setdec(char *s, int i, int n)
{
(ex0010.cと同じ内容)
}
char *skip_space(char *s)
{
(ex0010.cと同じ内容)
}
void G01Main()
{
int i, j = 0, n;
char s[11];
g01_setcmdlin(cmdusage);
n = g01_getcmdlin_int_s(1);
for (i = g01_getcmdlin_int_s(0); i <= n; i++) {
j += i;
}
setdec(s, j, 10);
s[10] = 0;
g01_putstr0(skip_space(s));
return;
}>efg01 ex0013.g01 i:3 n:5 12
>efg01 ex0013.g01 n:5 i:3 12
#include <guigui01.h>
unsigned char cmdusage[] = {
0x86, 0x55,
0x1c, 0, 'i', 0x1c, 1, '#', /* 最初が0x0cから0x1cに変わったのに注目! */
0x1c, 0, 'n', 0x1c, 1, '#', /* 最初が0x0cから0x1cに変わったのに注目! */
0x40
};
void setdec(char *s, int i, int n)
{
(ex0010.cと同じ内容)
}
char *skip_space(char *s)
{
(ex0010.cと同じ内容)
}
void G01Main()
{
int i, j = 0, n;
char s[11];
g01_setcmdlin(cmdusage);
n = g01_getcmdlin_int_o(1, 100);
for (i = g01_getcmdlin_int_o(0, 0); i <= n; i++) {
j += i;
}
setdec(s, j, 10);
s[10] = 0;
g01_putstr0(skip_space(s));
return;
}>efg01 ex0014.g01 5050 >efg01 ex0014.g01 n:1000 500500 >efg01 ex0014.g01 i:98 297
#include <guigui01.h>
unsigned char cmdusage[] = {
0x86, 0x55,
0x0c, 0, 's', 0x3c, 3, 's', 't', 'r', /* 0x3cは文字列型引数 */
0x1c, 0, 'n', 0x1c, 1, '#',
0x40
};
void G01Main()
{
int i, n;
char s[16];
g01_setcmdlin(cmdusage);
g01_getcmdlin_str_s0(0, 16, s); /* sに受け取る、最大16バイトまで、末尾に0が入る */
n = g01_getcmdlin_int_o(1, 10);
for (i = 0; i < n; i++) {
g01_putstr0(s);
}
return;
}>efg01 ex0015.g01 usage>ex0015.g01 s:str [n:#]
>efg01 ex0015.g01 s:abc abcabcabcabcabcabcabcabcabcabc >efg01 ex0015.g01 s:12 n:3 121212 >efg01 ex0015.g01 s:1+2 n:1+2 1+21+21+2
>efg01 ex0015.g01 s:1234567890123456
Too long Command line ("1234567890123456" max:16)#include <guigui01.h>
unsigned char cmdusage[] = {
0x86, 0x5c, 0, /* ここが変わった! */
0x0c, 0, 's', 0x3c, 3, 's', 't', 'r',
0x1c, 0, 'n', 0x1c, 1, '#',
0x40
};
void G01Main()
{
(ex0015.cと同じ内容)
}>efg01 ex0016.g01 usage>ex0016.g01 [s:]str [[n:]#]
>efg01 ex0016.g01 abc 4 abcabcabcabc