看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 問題(Question): 書本範例: 利用學生ID搜尋,找出學生的資料 餵入的資料(Input): #include<stdio.h> struct mydata { int id; char name[12]; int score; }buffer; int main(void) { FILE *fptr; int idkey; printf("Input ID to search"); scanf("%d",&idkey); fptr=fopen("c:\\c_prog\\abc.txt","r"); if(fptr!=NULL) { while(!feof(fptr)&&(idkey!=buffer.id)) { fread(&buffer,sizeof(buffer),1,fptr) if(buffer.id==idkey) { printf("Yes! You got it!\n"); printf("Student's ID:%d\n",buffer.id); printf("Student's NEME:%s\n",buffer.name); printf("Student's score:%d\n",buffer.score); } } } ... ...(以下省略 } 補充說明(Supplement): 程式打得有點多, 主要是想問為何 buffer.id 就可以找到資料 而不需要像 buffer[1].id 這樣呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.65.117 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1432525664.A.B13.html
Feis: 這個問題很有趣. 為什麼你覺得需要加[] ? 而且還是 1 ? 05/25 11:59
tarobear: 我只是舉例@@ 因為我想到的方式是用for找資料... 05/25 12:06
tarobear: 我想說結構是一筆一筆資料存起來的這樣 05/25 12:08
Feis: 這裡的 buffer 每次只存其中一筆. 05/25 12:25
tarobear: 所以是buffer只有一筆資料, 不需要buffer[i].id的意思 05/25 13:06
tarobear: 另一個問題是fread(,,1,) 這個1是取1筆資料後 05/25 13:13
tarobear: 會跳至下一筆資料嗎? 像是getc 那樣? 05/25 13:14
overhead: 你畫面上的buffer不是array啊 為何會須要[]? 05/28 00:02