[问题] C的结构问题

楼主: tarobear (塔落熊)   2015-05-25 11:47:42
开发平台(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 这样呢?
作者: Feis (永远睡不着 @@)   2015-05-25 11:59:00
这个问题很有趣. 为什么你觉得需要加[] ? 而且还是 1 ?
楼主: tarobear (塔落熊)   2015-05-25 12:06:00
我只是举例@@ 因为我想到的方式是用for找资料...我想说结构是一笔一笔资料存起来的这样
作者: Feis (永远睡不着 @@)   2015-05-25 12:25:00
这里的 buffer 每次只存其中一笔.
楼主: tarobear (塔落熊)   2015-05-25 13:06:00
所以是buffer只有一笔资料, 不需要buffer[i].id的意思另一个问题是fread(,,1,) 这个1是取1笔资料后会跳至下一笔资料吗? 像是getc 那样?
作者: overhead (overhead)   2015-05-28 00:02:00
你画面上的buffer不是array啊 为何会须要[]?

Links booklink

Contact Us: admin [ a t ] ucptt.com