伊莉討論區

標題: 請幫忙解答(查詢) [打印本頁]

作者: 亂轟大砲    時間: 2009-4-9 12:00 AM     標題: 請幫忙解答(查詢)

本帖最後由 亂轟大砲 於 2009-4-9 12:36 AM 編輯

請問一下我想只輸入學號可以輸出這個學號的資料
簡單說就是查詢功能
請各位大大幫我想想
感謝!!

例如:
如果No[Num][0]=5001
那我想輸入"5001" 把 Num的值找出來該怎麼寫?


這是我寫的讀取資料和儲存資料的程式碼
和a.txt的檔案
---------------------
#include "stdafx.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
int main(int argc, char* argv[])
{
char Buf[10],Class[200][20],No[200][20],Name[200][20];
int i,j,k,Num,Score[200];
FILE *ln1,*Out1;
Buf[0]=0;
while(1)
{
printf("讀取(R) 儲存(S) 查詢(O) 離開(E)\n");
Buf[0]=getch();
switch(Buf[0])
{
case'E':
case'e':
return -1;
break;
case'R':
case'r':
if ((ln1=fopen("c:/a.txt","rb"))==NULL)
{
printf("File c:/a.txt not found …\r\n"); return -1;
}
Num=0;
while (!feof(ln1))
{
fscanf(ln1,"%s %s %s %d\r\n",&Class[Num][0],&No[Num][0],&Name[Num][0],&Score[Num]);
printf("%s %s %s %d\r\n",&Class[Num][0],&No[Num][0],&Name[Num][0],Score[Num]);
Num++;

}
fclose(ln1);
break;
case's':
case'S':
if  ((Out1=fopen("c:/b.txt","wb"))==NULL)
{
printf("File c:/b.txt can't be created …\r\n"); return -1; }
for (i=0;i<Num;i++)
fprintf(Out1,"%s %s %s %d\r\n",&Class[0],&No[0],&Name[0],Score);
fclose(Out1);
break;
}
}
    return 0;
}
----------------------------------

這是a.txt的檔案(分別是班級 學號 姓名 成績)

一年A班 5001 小明 90
一年B班 5200 小華 70
一年A班 6220 小康 80
一年C班 7442 小呆 60

----------------------------------

作者: include    時間: 2009-4-9 01:17 AM

你資料從檔案裡讀進來的時候
沒有存起來喔
而是把之前讀的覆蓋掉了
加一個變數控制第二個維度吧

資料都存起來後只要去存放學號的陣列裡跑一遍就知道有沒有你要搜尋的資料了




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!