//修改了一點,注意看說明
#include <stdio.h>
#include <stdlib.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}sa[3],sb[3],*pp,*qq; //建立結構體型別struct stu的同時,定義結構體陣列sa、sb,定義結構體指標變數 pp、qq。
int main()
FILE *fp;
char ch;
int i;
if((fp=fopen("D:\\學習\\C語言原始碼\\devC++\\第13章 檔案\\stu_list.txt","w"))==NULL) //以只寫的方式開啟檔案 ,沒有該檔案的情況下會建立該檔案
printf("Cannot open file,press any key to exit");
getchar();
exit(0);
}
printf("input data\n");
pp=sa;
for(i=0;i<3;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr); //先用scanf給結構體的成員變數賦值
//在下在這句多加幾個空格,作為輸入資料的分隔符,注意輸入的人名和地址中應該沒有空格,不然會出錯
//或者檔案的輸入和輸出全部指定寬度
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->addr); //然後用fprintf將結構體成員變數的值寫入fp所指向的檔案stu_list.txt中去
fclose(fp); //完成寫入檔案操作後,關閉檔案,使指標fp不再指向該檔案
fp=fopen("D:\\學習\\C語言原始碼\\devC++\\第13章 檔案\\stu_list.txt","r"); //以只讀的方式開啟檔案
qq=sb;
printf("name\tnumber age addr\n");
for(i=0;i<3;i++,qq++)
fscanf(fp,"%s%d%d%s",qq->name,&qq->num,&qq->age,qq->addr); //先用fscanf將fp所指向的檔案stu_list.txt中的值讀取到結構體成員變數中
printf("%s\t%5d%3d%s\n",qq->name,qq->num,qq->age,qq->addr); //然後用printf輸出結構體變數的值
fclose(fp); //完成讀取檔案操作後,關閉檔案,使指標fp不再指向該檔案
//修改了一點,注意看說明
#include <stdio.h>
#include <stdlib.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}sa[3],sb[3],*pp,*qq; //建立結構體型別struct stu的同時,定義結構體陣列sa、sb,定義結構體指標變數 pp、qq。
int main()
{
FILE *fp;
char ch;
int i;
if((fp=fopen("D:\\學習\\C語言原始碼\\devC++\\第13章 檔案\\stu_list.txt","w"))==NULL) //以只寫的方式開啟檔案 ,沒有該檔案的情況下會建立該檔案
{
printf("Cannot open file,press any key to exit");
getchar();
exit(0);
}
printf("input data\n");
pp=sa;
for(i=0;i<3;i++,pp++)
{
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr); //先用scanf給結構體的成員變數賦值
//在下在這句多加幾個空格,作為輸入資料的分隔符,注意輸入的人名和地址中應該沒有空格,不然會出錯
//或者檔案的輸入和輸出全部指定寬度
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->addr); //然後用fprintf將結構體成員變數的值寫入fp所指向的檔案stu_list.txt中去
}
fclose(fp); //完成寫入檔案操作後,關閉檔案,使指標fp不再指向該檔案
fp=fopen("D:\\學習\\C語言原始碼\\devC++\\第13章 檔案\\stu_list.txt","r"); //以只讀的方式開啟檔案
qq=sb;
printf("name\tnumber age addr\n");
for(i=0;i<3;i++,qq++)
{
fscanf(fp,"%s%d%d%s",qq->name,&qq->num,&qq->age,qq->addr); //先用fscanf將fp所指向的檔案stu_list.txt中的值讀取到結構體成員變數中
printf("%s\t%5d%3d%s\n",qq->name,qq->num,qq->age,qq->addr); //然後用printf輸出結構體變數的值
}
fclose(fp); //完成讀取檔案操作後,關閉檔案,使指標fp不再指向該檔案
}