怎么实现文件输入数据,到结构体的数组指针中

结构体:typedefstructData{char(*name)[N];//记录30个学生的姓名int(*xuehao)[N];//记录30个学生的学号}文件中的数据:... 结构体:typedef struct Data
{ char (*name)[N]; //记录30个学生的姓名
int (*xuehao)[N]; //记录30个学生的学号}

文件中的数据:
zhaoyun 1

qianmiu 2

shunbing 3

libai 4

zhoucang 5

文件已经成功打开了,用fscanf输入//有错
for(i=0;i<4;i++)

{fscanf(fp,"%s",data->(name+i));

fscanf(fp,"%d",data->(xuehao+i));}

我觉得用指针数组方便点,但是fscanf似乎不能把值输到指针中去,只能输到数组中,因此用数组指针,但是数组指针的增量i应该怎么放呢?
展开
 我来答
金色潜鸟
2013-12-05 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5666万
展开全部
要用动态分配让指针变量有数据存放单元。
给你写完整了。
n=30; 给定了。你也可以用临时输入的方法,改变人数要求。
数据文件名也给定为 abc.txt .

#include<stdio.h>
#define N 16
typedef struct Data
{
char (*name)[N];
int *xuehao;
} DT;

main()
{
DT data;
int i,n=30;
FILE *fp;

data.xuehao=(int *) malloc(sizeof(int)*n); //动态分配
data.name = (char (*)[N]) malloc( sizeof(char) * n); //动态分配

fp = fopen("abc.txt","r");
for(i=0;i<n;i++){
fscanf(fp,"%s", data.name[i]);
fscanf(fp,"%d", &data.xuehao[i]);
}
fclose(fp);
for(i=0;i<n;i++){
printf("%s %d\n",data.name[i], data.xuehao[i]);
}
}
============
若喜欢指针形式,你写指针形式就是了:
fscanf(fp,"%s", data.name+i);
fscanf(fp,"%d", data.xuehao+i);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式