Sandco 2015-06-25 11:34 采纳率: 100%
浏览 1955
已采纳

c语言 新人 求修改 这个表格输出为什么只能显示最后一行

完整代码在http://pan.baidu.com/s/1hqKoRwo
以下为表格代码 运行时只能显示一行 且为最后输入的一行
`void displayuser() //显示所有用户信息
{
FILE *p;
int k, n=0;

system("cls");
p = fopen("card", "r");

while( !feof(p) )
{
    fread(&card, sizeof(student), 1, p);
    n++;
}
fclose(p);

if( n==0 )
{
    printf("没有任何用户信息!\n\n");
}
else{
    k = 0;
    printf("┏━━━━┳━━━━━┳━━━━━━━┓\n");
    printf("┃  姓名  ┃   班级   ┃      学号    ┃\n");
    printf("┣━━━━╋━━━━━╋━━━━━━━┫\n");
    while(k<=n)
    {
        if(card[k].stuclass[0] != '\0')   //屏蔽空信息 
        {
            printf("┃%-8s┃%-10s┃%-14d┃\n", card[k].stuname, card[k].stuclass, card[k].stunum);
        }k++;
    }
    printf("┗━━━━┻━━━━━┻━━━━━━━┛\n");
}
printf("\n\n按任意键回到主菜单!\n");
getch();

}``


  • 写回答

3条回答

  • kongslly 2015-06-25 11:48
    关注

    while( !feof(p) )
    {
    fread(&card, sizeof(student), 1, p);
    n++;
    }
    这个读出来一组数据会把上一组覆盖掉,n增加的时候card也要增加,别用全局数组,用指针让地址随着增加就行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题