注册 登录
编程论坛 VC++/MFC

关于结构体的一点儿疑问

BStatistics 发布于 2013-03-15 10:35, 508 次点击
程序代码:
#include "stdafx.h"
#include "stdio.h"

void main()                    
{
    struct aa
    {
        char biaoji[20];
        char num[20];
        char xulie[50];
    }st;
    FILE *fp;
    FILE *fp2;
    fp=fopen("ba11.txt","r");
    fp2=fopen("zhuanba11.txt","w");

    if (fp==NULL)
    {
        printf("文件无法打开!\n");
    }
    while (!feof(fp))
    {
        fscanf(fp,"%s%s%s",&st.biaoji,&st.num,&st.xulie);
        fprintf(fp2,">%s %s\n%s\n",st.biaoji,st.num,st.xulie);
    }
}

这是帮生科院的同学写的一个很简单的转换文件格式的小算法,我现在有个问题搞不清:1.为什么fscanf()语句中,&st.biaoji前面的&加与不加结果一样?2.可不可以将结构体变量st定义成一个数组?比如说st[1000],然后while(!feof(fp))中定义一个int i=0; i++,然后st[i].biaoji,感觉定义成一个结构体变量数组更好理解。
只有本站会员才能查看附件,请 登录
2 回复
#2
yuccn2013-03-15 12:32
1.为什么fscanf()语句中,&st.biaoji前面的&加与不加结果一样
读取信息时候,要把地址给它,& 就是把st.biaoji的地址给接口

2.可不可以将结构体变量st定义成一个数组?比如说st[1000],然后while(!feof(fp))中定义一个int i=0; i++,然后st[i].biaoji,感觉定义成一个结构体变量数组更好理解。
可以的,只要保证数据读入格式和读出格式一样就行了
#3
BStatistics2013-03-15 15:11
回复 2楼 yuccn

O(∩_∩)O谢谢!
1