作者Formose.bbs@cpu.tfcis.org (對妳情深不變~~) 看板: itoc
標題[問題] 股市大亨
時間動力核心 (2007/05/06 Sun 13:55:38)
小弟使用的是Win版的Maple_itoc最新版
最近新裝上了股市大亨程式碼的程式(非精華區裡頭的)
不過卻出現了怪怪的問題,以下
----------------------------------------------------------------------------
編號 商店名稱 價 格(漲 跌) 目前數量 今日成交量 擁有數量
◇──────────────────────────────────◇
1. 上 閤 屋 538976.26(△ 540225.82) 825441073-1386167893 5
2. 新 天 地 538976.28(▽-1440691.79) 549761645 540025032 0
3. 遠東百貨 460628.51(▼-1532254.76)1470505009 -189151045 0
4. 統聯客運 876294.49(▲ 552314.47)1700022177 455090186 0
5. 國賓影城 538996.01(△ 538976.28) 544826468 859517275 0
6. 生活工坊 891297.82(▲ 1834687.26) 538976288 -994939598 0
7. 寶 雅 館 552313.88(▲ 168457.63) 538976288-1507839456 0
8. 成大醫學 -375119.-81(△ 1528504.35)-1512986080 541565271 0
◇──────────────────────────────────◇
加權股價總指數: -272603.-82 ▼-2104748.02 總成交量: -1681900228
您的股價總值: -1434225506 銀幣
您的資本金額: 388139061 銀幣
----------------------------------------------------------------------------
每家的價格竟然都有幾十萬,漲跌也很恐怖
然後去看了一下走勢圖
發現基值竟然也是好幾萬
這..是哪裡出了問題呢?
目前猜測應該是stock-change.c有錯
不過看來看去還是找不到問題所在
可以麻煩各位大大指教一下嗎?
以下附上我的程式碼
----------------------------------------------------------------------------
: game/stock.c
/*-------------------------------------------------------*/
/* stock.c ( NTHU CS MapleBBS Ver 3.10 ) */
/*-------------------------------------------------------*/
/* target : 股市交易 */
/* author : Efen.bbs@bbs.med.ncku.edu.tw */
/*-------------------------------------------------------*/
#include "bbs.h"
#define FN_STOCK "newstock" /* 個人的股市檔案-各股擁有張數 */
#define FN_STOCK_LOG "newstock.log" /* 個人的股市檔案-歷史記錄 */
#define MAXSTOCK 8 /* 八家 */
#define OUTPUT_STOCK "run/Stock"
static char fn_stock[] = "gem/@/@-stock";
static char fn_help[] = "gem/@/@-stockhelp";
static char fn_stockwin[] = "run/stock.wintmp";
typedef struct
{
int price[MAXSTOCK]; /* 價格 */
int change[MAXSTOCK]; /* 漲跌 */
int stillnum[MAXSTOCK]; /* 剩餘數量 */
int ordernum[MAXSTOCK]; /* 成交量 */
int startnum[MAXSTOCK]; /* 每日初始值 */
} STOCK;
static char stockname[MAXSTOCK][9] =
{
"上 閤 屋", "新 天 地", "遠東百貨", "統聯客運",
"國賓影城", "生活工坊", "寶 雅 館", "成大醫學"
};
static int own[MAXSTOCK];
static int num = 0;
/*-------------------------------------------------------*/
/* 螢幕控制 */
/*-------------------------------------------------------*/
static void
show_stock_data(sto)
STOCK *sto;
{
int i, total, chan, all, ch, cc, allmoney;
total = 0;
chan = 0;
all = 0;
allmoney = 0;
for (i = 0; i < MAXSTOCK; i++)
{
total += sto->price[i];
chan += sto->change[i];
all += sto->ordernum[i];
allmoney += own[i] * sto->price[i];
}
move(2, 0);
outs(" \033[1;42m 編號 \033[36m商店名稱 \033[33m價 格"
"\033[37m(\033[31m漲 \033[32m跌\033[37m) 目前數量 今日成交量"
" 擁有數量 \033[m\n");
outs(" \033[46m◇──────────────────────"
"────────────◇\033[m\n");
for (i = 0; i < MAXSTOCK; i++)
{
ch = (sto->price[i] % 1000) / 10;
if (sto->change[i] >= 0)
{
cc = (sto->change[i] % 1000) / 10;
prints("\033[1m%8d.\033[36m%11s \033[3%dm%6d.%02d(%2s %02d.%02d)"
"\033[37m%10d%11d%11d\033[m\n",
i + 1, stockname[i],
(sto->change[i] == 0) ? 7 : 1,
sto->price[i] / 1000, ch,
(sto->change[i] == 0) ? "==" :
(sto->price[i] > sto->startnum[i] * 1.05 ? "▲" : "△"),
sto->change[i] / 1000, cc,
sto->stillnum[i], sto->ordernum[i], own[i]);
}
else
{
cc = (-sto->change[i] % 1000) / 10;
prints("\033[1m%8d.\033[36m%11s \033[32m%6d.%02d(%2s-%02d.%02d)"
"\033[37m%10d%11d%11d\033[m\n",
i + 1, stockname[i], sto->price[i] / 1000, ch,
(sto->price[i] < sto->startnum[i] * 0.95) ? "▼" : "▽",
-sto->change[i] / 1000, cc,
sto->stillnum[i], sto->ordernum[i], own[i]);
}
}
outs(" \033[46m◇──────────────────────"
"────────────◇\033[m\n");
ch = (total % 1000) / 10;
if (chan >= 0)
{
cc = (chan % 1000) / 10;
prints("\033[1;37m 加權股價總指數: \033[3%dm%d.%02d "
"%2s %d.%02d\033[37m 總成交量: %d\033[m\n\n",
(chan == 0) ? 7 : 1, total / 1000, ch,
(chan == 0) ? "==" : "▲", chan / 1000, cc, all);
}
else
{
cc = (-chan % 1000) / 10;
prints("\033[1;37m 加權股價總指數: \033[32m%d.%02d "
"▼-%d.%02d\033[37m 總成交量: %d\033[m\n\n",
total / 1000, ch, -chan / 1000, cc, all);
}
prints(" \033[1;32;45m您的股價總值:\033[33m %d \033[36m銀幣\033[m\n\n",
allmoney);
prints(" \033[1;45m您的資本金額:\033[33m %d \033[36m銀幣\033[m",
cuser.money);
}
static void
query_stock()
{
FILE *fp;
char fpath[32];
int tickets[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int stock[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int ch, num1, num2, i = 0;
usr_fpath(fpath, cuser.userid, FN_STOCK_LOG);
if (fp = fopen(fpath, "r"))
{
while ((fscanf(fp, "%d %d", &num1, &num2)) != EOF)
{
stock[i] = num1;
tickets[i] = num2;
i++;
}
fclose(fp);
}
else
{
for (i = 0; i < MAXSTOCK; i++)
{
stock[i] = 0;
tickets[i] = 0;
}
}
clear();
outs("\033[1;33m櫃台小姐給您一張清單:\033[\n");
prints("\033[1;32m股市:\033[35m%s \033[32m持股一覽表\033[m\n\n",
cuser.userid);
for (i = 0; i < 8; i++)
{
ch = (tickets[i] % 1000) / 10;
prints("\033[1;3%dm %d.您擁有( %8s )的股份共 %8d 張,"
"股價 [%5d.%02d]\033[m\n",
i + 1 <= 7 ? i + 1 : i - 6, i + 1,
stockname[i], stock[i], tickets[i] / 1000, ch);
}
vmsg(NULL);
}
int
main_stock()
{
int ch, i, j, num1, num2, money, canbuy;
int tickets[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int stock[8] = {0, 0, 0, 0, 0, 0, 0, 0};
FILE *fp, *fp2;
char buf[13], name[6], fpath[32];
char userid[13];
STOCK oldsto, *sto;
if (cutmp->status & STATUS_COINLOCK)
{
vmsg(MSG_COINLOCK);
return XEASY;
}
while (1)
{
j = 0;
usr_fpath(fpath, cuser.userid, FN_STOCK);
if (fp = fopen(fpath, "r")) /* 以前玩過股市,讀取目前所有的股份 */
{
for (i = 0; i < MAXSTOCK; i++)
fscanf(fp, "%d\n", &own[i]);
}
else
/* 沒玩過股市,建立新檔 */
{
fp = fopen(fpath, "w");
for (i = 0; i < MAXSTOCK; i++)
{
fprintf(fp, "%d\n", 0);
own[i] = 0;
}
}
fclose(fp);
clear();
outs("\033[1;36;44m ★ ★ ★ ★ \033[31m【 \033[35m證券交易所\033[31m 】"
" \033[36m★ ★ ★ ★ [\033[32mDesign by Efen\033[36m]
\033[m");
strcpy(fpath, FN_RUN_STOCK);
if (rec_get(fpath, &oldsto, sizeof(STOCK), 0))
{
memset(&oldsto, 0, sizeof(STOCK));
for (i = 0; i < MAXSTOCK; i++)
{
oldsto.price[i] = 100000;
oldsto.change[i] = 0;
oldsto.stillnum[i] = 100;
oldsto.ordernum[i] = 0;
oldsto.startnum[i] = 100000;
}
rec_add(fpath, &oldsto, sizeof(STOCK));
}
sto = &oldsto;
show_stock_data(sto);
switch (vans("[B:買 S:賣 C:查詢 D:刪除明細 F:各股走勢 "
"I:走勢圖 H:說明 A:大亨 Q:離開]"))
{
case 'a':
more(OUTPUT_STOCK, NULL);
break;
case 'h':
more(fn_help, NULL);
break;
case 'c':
query_stock();
break;
case 'f':
more(FN_RUN_STOCK_RECORD, NULL);
break;
case 'i':
more(fn_stock, NULL);
break;
case 'd':
if (vans("確定刪除(Y/N)?[N]") == 'y')
{
usr_fpath(fpath, cuser.userid, FN_STOCK_LOG);
unlink(fpath);
}
break;
case 's':
if (utmp_count(cuser.userno, 0) > 1)
{
vmsg("您重複登入BBS,有洗錢嫌疑,請登出重複之ID");
break;
}
sprintf(buf, "要賣哪家(1-%d)?", MAXSTOCK);
vget(b_lines, 0, buf, name, 2, DOECHO);
i = atoi(name);
if (i < 1 || i > MAXSTOCK)
break;
if (!own[i - 1])
{
vmsg("已無股份可賣");
break;
}
sprintf(buf, "要賣幾張(1-%d)?", own[i - 1]);
vget(b_lines, 0, buf, name, 5, DOECHO);
num = atoi(name);
if (num < 1 || num > own[i - 1])
break;
money = sto->price[i - 1];
strcpy(fpath, FN_RUN_STOCK);
rec_get(fpath, &oldsto, sizeof(STOCK), 0);
sto->stillnum[i - 1] = oldsto.stillnum[i - 1] + num;
sto->ordernum[i - 1] = oldsto.ordernum[i - 1] + num;
sto->price[i - 1] = oldsto.price[i - 1];
sto->change[i - 1] = oldsto.change[i - 1];
sto->startnum[i - 1] = oldsto.startnum[i - 1];
rec_put(fpath, sto, sizeof(STOCK), 0, NULL);
own[i - 1] -= num;
canbuy = money * num * 0.997;
cuser.money += canbuy;
/* addmoney(canbuy);*/
usr_fpath(fpath, cuser.userid, FN_STOCK_LOG);
if (fp = fopen(fpath, "r"))
{
while ((fscanf(fp, "%d %d", &num1, &num2)) != EOF)
{
tickets[j] = num2;
stock[j] = own[j];
if (stock[j] == 0)
tickets[j] = 0;
j++;
}
fclose(fp);
}
else
{
for (j = 0; j < MAXSTOCK; j++)
{
if (j == (i - 1))
tickets[j] = money;
else
tickets[j] = 0;
stock[j] = own[j];
}
}
fp = fopen(fpath, "w");
for (j = 0; j < MAXSTOCK; j++)
fprintf(fp, "%d %d\n", stock[j], tickets[j]);
fclose(fp);
strcpy(fpath, FN_RUN_STOCK_USER);
fp = fopen(fpath, "a+");
ch = (money % 1000) / 10; /* 小數位 */
fprintf(fp, "[%s] %3d.%02d %12s賣出 %s %d張 收入%d\n",
Now(), money / 1000, (ch < 10 ? ch * 10 : ch), cuser.userid,
stockname[i - 1], num, canbuy);
fclose(fp);
usr_fpath(fpath, cuser.userid, FN_STOCK);
fp = fopen(fpath, "w");
for (j = 0; j < MAXSTOCK; j++)
fprintf(fp, "%d\n", own[j]);
fclose(fp);
sprintf(fpath, "賣出 %s %d張,收入 %d 銀幣!",
stockname[i - 1], num, canbuy);
vmsg(fpath);
acct_save(&cuser);
break;
case 'b':
if (utmp_count(cuser.userno, 0) > 1)
{
vmsg("您重複登入BBS,有洗錢嫌疑,請登出重複之ID");
break;
}
sprintf(buf, "要買哪家(1-%d)?", MAXSTOCK);
vget(b_lines, 0, buf, name, 2, DOECHO);
i = atoi(name);
if (i < 1 || i > MAXSTOCK)
break;
if (sto->stillnum[i - 1] < 1)
{
vmsg("已無股份可買");
break;
}
money = sto->price[i - 1];
canbuy = (sto->stillnum[i - 1] > 1000) ?
(((cuser.money / money) > 1000) ? 1000 :
(cuser.money / money)) :
(((cuser.money / money) > sto->stillnum[i - 1]) ?
sto->stillnum[i - 1] : (cuser.money / money));
sprintf(buf, "要買幾張(1-%d)?", canbuy);
vget(b_lines, 0, buf, name, 5, DOECHO);
num = atoi(name);
if (num < 1 || num > canbuy)
break;
if (cuser.money >= (money * num))
{
strcpy(fpath, FN_RUN_STOCK);
rec_get(fpath, &oldsto, sizeof(STOCK), 0);
if (oldsto.stillnum[i - 1] < num)
{
vmsg("股份剛被搶走了,下次請早!");
break;
}
sto->stillnum[i - 1] = oldsto.stillnum[i - 1] - num;
sto->ordernum[i - 1] = oldsto.ordernum[i - 1] + num;
sto->price[i - 1] = oldsto.price[i - 1];
sto->change[i - 1] = oldsto.change[i - 1];
sto->startnum[i - 1] = oldsto.startnum[i - 1];
rec_put(fpath, sto, sizeof(STOCK), 0, NULL);
own[i - 1] += num;
cuser.money -= (money * num);
usr_fpath(fpath, cuser.userid, FN_STOCK_LOG);
if (fp = fopen(fpath, "r"))
{
while ((fscanf(fp, "%d %d", &num1, &num2)) != EOF)
{
stock[j] = own[j];
if (j == (i - 1))
tickets[j] = (num1 * num2 + num * sto->price[j]) / own[j];
else
tickets[j] = num2;
j++;
}
fclose(fp);
}
else
{
for (j = 0; j < MAXSTOCK; j++)
{
stock[j] = own[j];
if (j == (i - 1))
tickets[j] = sto->price[i - 1];
else
tickets[j] = 0;
}
}
fp = fopen(fpath, "w");
for (j = 0; j < MAXSTOCK; j++)
fprintf(fp, "%d %d\n", stock[j], tickets[j]);
fclose(fp);
strcpy(fpath, FN_RUN_STOCK_USER);
fp = fopen(fpath, "a+");
ch = (money % 1000) / 10; /* 小數位 */
fprintf(fp, "[%s] %3d.%02d %12s買進 %s %d張 花費%d\n",
Now(), money / 1000, (ch < 10 ? ch * 10 : ch), cuser.userid,
stockname[i - 1], num, money * num);
fclose(fp);
usr_fpath(fpath, cuser.userid, FN_STOCK);
fp = fopen(fpath, "w");
for (j = 0; j < MAXSTOCK; j++)
fprintf(fp, "%d\n", own[j]);
fclose(fp);
}
sprintf(fpath, "買進 %s %d張,花費 %d 銀幣!",
stockname[i - 1], num, money * num);
vmsg(fpath);
acct_save(&cuser);
break;
case 'q':
money = 0;
for (j = 0; j < MAXSTOCK; j++)
money += own[j] * sto->price[j];
j = 0;
if (fp = fopen(FN_RUN_STOCK_WIN, "r"))
{
fp2 = fopen(fn_stockwin, "w");
while ((fscanf(fp, "%s %d", &userid, &num1)) != EOF)
{
if (money > num1 && (j != 1))
{
fprintf(fp2, "%s %d\n", cuser.userid, money);
j = 1;
}
if (strcmp(userid, cuser.userid))
fprintf(fp2, "%s %d\n", userid, num1);
}
fclose(fp);
fclose(fp2);
}
if (j == 0)
{
sprintf(fpath, "%s %d\n", cuser.userid, money);
f_cat(fn_stockwin, fpath);
}
rename(fn_stockwin, FN_RUN_STOCK_WIN);
return 0;
}
}
}
----------------------------------------------------------------------------
: util/stock-change.c
/*-------------------------------------------------------*/
/* stock-change.c ( NTHU CS MapleBBS Ver 3.10 ) */
/*-------------------------------------------------------*/
/* target : 股市交易變化 */
/* author : Efen.bbs@bbs.med.ncku.edu.tw */
/*-------------------------------------------------------*/
#include "bbs.h"
#define FN_STOCK "stock" /* 個人的股市檔案-各股擁有張數 */
#define FN_STOCK_LOG "stock.log" /* 個人的股市檔案-歷史記錄 */
#define MAXSTOCK 8 /* 八家 */
#define ADJUST_M 10 /* adjust back 10 minutes */
#define MAX_LINE 16
#define OUTPUT_STOCK "run/Stock"
static char fn_stock[] = "gem/@/@-stock"; /* 股市漲跌 */
static int all = 0;
typedef struct
{
int price[MAXSTOCK]; /* 價格 */
int change[MAXSTOCK]; /* 漲跌 */
int stillnum[MAXSTOCK]; /* 剩餘數量 */
int ordernum[MAXSTOCK]; /* 成交量 */
int startnum[MAXSTOCK]; /* 每日初始值 */
} STOCK;
static char stockname[MAXSTOCK][9] =
{
"上 閤 屋", "新 天 地", "遠東百貨", "統聯客運",
"國賓影城", "生活工坊", "寶 雅 館", "成大醫學"
};
static void
ansi_puts(fp, buf, mode)
FILE *fp;
char *buf, mode;
{
static char state = '0';
if (state != mode)
fprintf(fp, "\033[3%cm", state = mode);
if (*buf)
{
fprintf(fp, buf);
*buf = '\0';
}
}
static void
draw_usies(ptime)
struct tm ptime;
{
int num, hour, max, min, item, i, j, over;
char buf[ANSILINELEN];
FILE *fp;
int act[24];
for (i = 0; i < 24; i++)
act[i] = 0;
i = 0;
if (fp = fopen(FN_RUN_STOCK_CHANGE, "r"))
{
while ((fscanf(fp, "%d", &num)) != EOF)
{
act[i] = num;
i++;
}
fclose(fp);
}
else
return;
max = act[0];
min = act[0];
for (i = 0; i < 24; i++)
{
if (act[i] > max)
max = act[i];
else if (act[i] < min && act[i] != 0)
min = act[i];
}
min = (min / 100) * 1; /* Teddy修改:原為乘以100 */
for (i = 0; i < 24; i++)
{
if (act[i] != 0)
act[i] -= min;
}
max -= min;
item = max / MAX_LINE + 1;
over = max > 1000;
fp = fopen(fn_stock, "w");
fprintf(fp, "\t\t\t\033[1;33;46m [%02d/%02d/%02d] 今日股市走勢 \033[40m\n",
ptime.tm_year % 100, ptime.tm_mon + 1, ptime.tm_mday);
for (i = MAX_LINE + 1; i > 0; i--)
{
strcpy(buf, " ");
for (j = 0; j < 24; j++)
{
max = item * i;
hour = act[j];
if (hour && (max > hour) && (max - item <= hour))
{
ansi_puts(fp, buf, '3');
if (over)
hour = (hour + 5) / 10;
fprintf(fp, "%-3d", hour);
}
else if (max <= hour)
{
ansi_puts(fp, buf, '1');
fprintf(fp, "█ ");
}
else
strcat(buf, " ");
}
fprintf(fp, "\n");
}
fprintf(fp, "\033[34m"
" ╒════════════════════"
"═══════════════╕\n \033[32m"
"0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 "
"15 16 17 18 19 20 21 22 23\n"
"\t%s\t\033[m\n"
"\033[35m基值:\033[37m%-10d\033[35m總成交量:\033[1;37m%d\033[m\n",
over ? "\033[35m單位:\033[37m10\033[m" : "", min, all);
fclose(fp);
if (ptime.tm_hour == 23)
unlink(FN_RUN_STOCK_CHANGE);
}
int
main(argc, argv)
int argc;
char *argv[];
{
int ch[MAXSTOCK], i, tmp[MAXSTOCK], total, totalprice = 0, num, min;
FILE *fp, *fp2;
char fpath[24], userid[6][13], buf[13];
STOCK oldsto, *sto;
time_t now;
struct tm *ptime, xtime;
time(&now);
ptime = localtime(&now);
xtime = *ptime;
chdir(BBSHOME);
strcpy(fpath, FN_RUN_STOCK);
rec_get(fpath, &oldsto, sizeof(STOCK), 0);
sto = &oldsto;
total = num = sto->ordernum[0];
for (i = 0; i < MAXSTOCK; i++)
{
all += sto->ordernum[i];
if (sto->ordernum[i] > total)
total = sto->ordernum[i];
else if (sto->ordernum[i] < num)
num = sto->ordernum[i];
}
min = (total + num) / 2;
for (i = 0; i < MAXSTOCK; i++)
{
if (total == num)
ch[i] = 30;
else
ch[i] = 30 + 10 * (sto->ordernum[i] - min) / (total - num);
}
srand(time(NULL));
for (i = 0; i < MAXSTOCK; i++)
{
if (rnd(10) == 0)
tmp[i] = 0;
else
{
num = rnd(ch[i] * 250 + 10000);
if (num > 8571)
{
total = oldsto.startnum[i] * (1.07);
if ((total - oldsto.price[i]) > 5000)
tmp[i] = rnd(5000);
else
tmp[i] = rnd(total - oldsto.price[i]);
}
else
{
total = oldsto.startnum[i] * (0.93);
if ((oldsto.price[i] - total) > 5000)
tmp[i] = -rnd(5000);
else
tmp[i] = -rnd(oldsto.price[i] - total);
}
}
}
for (i = 0; i < MAXSTOCK; i++)
{
sto->price[i] = oldsto.price[i] + tmp[i];
sto->change[i] = tmp[i];
sto->stillnum[i] = oldsto.stillnum[i] + ch[i];
if (sto->stillnum[i] > 5000)
sto->stillnum[i] = 10;
totalprice += sto->price[i];
if (ptime->tm_hour == 0 && ptime->tm_min == 5)
{
sto->ordernum[i] = 0;
sto->startnum[i] = sto->price[i];
}
else
{
sto->ordernum[i] = oldsto.ordernum[i];
sto->startnum[i] = oldsto.startnum[i];
}
}
rec_put(fpath, sto, sizeof(STOCK), 0, NULL);
for (i = 0; i < MAXSTOCK; i++)
ch[i] = (sto->price[i] % 1000) / 10; /* 小數位 */
strcpy(fpath, FN_RUN_STOCK_RECORD);
fp = fopen(fpath, "a+");
fprintf(fp, "\033[1;33m%s\033[m\n", Btime(&now));
fprintf(fp, "%9s%9s%9s%9s%9s%9s%9s%9s\n",
stockname[0], stockname[1], stockname[2], stockname[3],
stockname[4], stockname[5], stockname[6], stockname[7]);
fprintf(fp, "%6d.%02d%6d.%02d%6d.%02d%6d.%02d%6d"
".%02d%6d.%02d%6d.%02d%6d.%02d\n\n",
sto->price[0] / 1000, ch[0], sto->price[1] / 1000, ch[1],
sto->price[2] / 1000, ch[2], sto->price[3] / 1000, ch[3],
sto->price[4] / 1000, ch[4], sto->price[5] / 1000, ch[5],
sto->price[6] / 1000, ch[6], sto->price[7] / 1000, ch[7]);
fclose(fp);
if (ptime->tm_min == 5)
{
fp = fopen(FN_RUN_STOCK_CHANGE, "a+");
fprintf(fp, "%d\n", totalprice / 1000);
fclose(fp);
draw_usies(xtime);
}
fp = fopen(OUTPUT_STOCK, "w");
fprintf(fp, "\n ┤\033[1;41m %d 月 %d 日 %d 時"
" 股市大亨 \033[m├\n\n",
ptime->tm_mon + 1, ptime->tm_mday, ptime->tm_hour);
for (i = 0; i < 6; i++)
{
strcpy(userid[i], "");
ch[i] = 0;
}
i = 0;
if (fp2 = fopen(FN_RUN_STOCK_WIN, "r"))
{
while ((fscanf(fp2, "%s %d", &buf, &num)) != EOF)
{
strcpy(userid[i], buf);
ch[i] = num;
if (++i > 4)
break;
}
fclose(fp2);
}
for (i = 0; i < 5; i++)
{
fprintf(fp, " \033[1;3%dm第 %d 名:%-13s 股市總值 %d 銀幣\n",
i + 1, i + 1, userid[i], ch[i]);
}
fclose(fp);
return 0;
}
--
=[﹎:�摃�◣��:﹎ Origin ]|[ ���O���� cpu.tfcis.org ]|[�搟說�﹎:]=
=[﹊:�摃�╱��:﹊ Author ]|[ 140.127.186.3 ]|[���插�﹊:]=