C语言存储与调用

来源:百度知道 编辑:UC知道 时间:2024/09/23 06:10:46
玩WOW游戏的朋友都知道每次都要点阵卡(密保卡),这样好烦,带身边要是丢了就麻烦了。想设计一个小程序来保存这个8*10(横A-H。竖1-10)的矩阵,效果当然就是能在使用时输入比如A8,能得到相应的一个两位数字。

问题就在于存储和调用,如何用C语句来实现,有兴趣的朋友可试下。
谢谢一楼的源码,只是我试运行时发现了一些小问题,只是你看到后能否完善一下。该卡的话应该不仅只能保存一张,能否再一进入时就显示:保存卡1、保存卡2……,同时有选项:使用卡1、使用卡2……,还有就是初始数字录入时,所有数据之间是以‘,’来分隔还是‘空格’,还是直接一串数字的输入。后来输了一半就输不了,不知道为什么。玩过游戏的人都知道,是要输入三个,比如A08,C05,H10,三个数字应该显示出来,而不只是一个数。屏幕保留时间当然最好能手动控制,(感觉加GETCH不咱有用)而不是一输入回车就消失窗口。最好是有一个可以选择的EXIT项。
能否再完美,定谢!
各路高手都参考一下!
多的话咱打不下了,我的E_M:kaiser566@tom.com,
zheni2003能否发个信息过来.

#include <stdio.h>
#include<stdlib.h>

int main(void)
{
FILE *fp;
char c[3]; int i, j;
int card[8][10] = {0};
if ((fp = fopen("card.txt", "r")) == NULL) {
if ((fp = fopen("card.txt", "w")) == NULL) {
exit(0);
}
printf("首次使用,按行依次输入所有的数\n");
for (i = 0; i < 8; i++)
for(j = 0; j < 10;j++){
scanf("%d", *card + 10 * i + j);
fprintf(fp, "%d\n", card[i][j]);

}

}else {
for (i = 0; i < 8; i++)
for(j = 0; j < 10;j++){
fscanf(fp, "%d", *card + 10 * i + j);

}
}
printf("输入行号列号\n");
scanf("%s", c);
i = c[0] - 'A';
if (c[2] == '\0')
j = c[1] - '0';
else
j = (c[1] - '0') * 10 + c[2] - '0';
printf("%d", card[i][j