程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> printf-c語言 新人 求修改 這個表格輸出為什麼只能顯示最後一行

printf-c語言 新人 求修改 這個表格輸出為什麼只能顯示最後一行

編輯:編程綜合問答
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();

}``


最佳回答:


while( !feof(p) )
{
fread(&card, sizeof(student), 1, p);
n++;
}
這個讀出來一組數據會把上一組覆蓋掉,n增加的時候card也要增加,別用全局數組,用指針讓地址隨著增加就行

Sandco
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved